C# – Programme minimaliste

Ceci est un exemple simple de programme C# écrivant à la console. Vous pourrez comparer par vous-mêmes avec des programmes équivalents dans les langages que vous connaissez.

Cet exemple montre les éléments syntaxiques et structurels suivants :

  • la méthode de classe Main() s'écrit avec un « M » majuscule, contrairement à ce qu'on connaît en C, C++ et Java;
  • l'instruction using devant un espace nommé, par exemple using System; permet d'omettre le préfixe décrivant l'espace nommé en question pour alléger l'écriture (par exemple, remplacer System.Console par Console). Ceci ressemble aux import de Java et aux using de C++;
  • les constantes s'expriment avec const, comme en C ou en C++ (Java utilise plutôt final). Un peu comme en Java, seuls les primitifs peuvent être const (le système de types de C# ne permet pas d'exprimer une instance constante d'une classe);
  • pour écrire un texte formaté à la console, le Framework de .NET utilise un format qui peut rappeler celui de C avec printf(). Dans Console.WriteLine("a {0} b", 3);, l'entier 3 sera inséré à la place de {0} dans le texte affiché. Conséquence : les erreurs de formatage ne sont pas détectées à la compilation;
  • les primitifs sont transformés en équivalents objets au besoin (technique qu'on nomme Boxing, et que Java utilise aussi depuis la version 5). Notez qu'un primitif C# est en fait un alias pour un struct, et que dans le monde .NET, les struct sont des types placés sur la pile (les classes, elles, sont instanciées dans le tas). Ceci explique qu'on puisse invoquer une méthode du primitif f (sa méthode GetType() retournera le nom du type dans le Framework, soit System.Single; le mot float en C# est un alias pour System.Single, et les deux noms peuvent être utilisés de manière interchangeable).
using System;

namespace ExempleConsole
{
   class Program
   {
      static void Main(string[] args)
      {
         // Sans raccourcis
         System.Console.WriteLine("J'aime mon prof");
         // Avec raccourcis
         Console.WriteLine("J'aime mon prof");
         // Composition de valeurs
         const int NOTE_OPTIMALE = 100,
                   SEUIL_PASSAGE = 60;
         Console.WriteLine("J'espère avoir un {0}% mais j'accepterais {1}%",
                           NOTE_OPTIMALE, SEUIL_PASSAGE);
         // les primitifs ont des méthodes
         float f = 1.0f;
         Console.WriteLine("Le type de la variable f est {0}",
                           f.GetType().ToString());
         // NOTE: le nom du type est celui du Framework, pas celui de C#
      }
   }
}

Valid XHTML 1.0 Transitional

CSS Valide !