Partager via


Structure générale d’un programme C#

Les programmes C# se composent d’un ou plusieurs fichiers. Chaque fichier contient zéro ou plusieurs espaces de noms. Un espace de noms contient des types tels que des classes, des structs, des interfaces, des énumérations et des délégués ou d’autres espaces de noms. L’exemple suivant est le squelette d’un programme C# qui contient tous ces éléments.

using System;

Console.WriteLine("Hello world!");

namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct
        {
        }
    }
}

L’exemple précédent utilise des instructions de niveau supérieur pour le point d’entrée du programme. Un seul fichier peut avoir des instructions de niveau supérieur. Le point d’entrée du programme est la première ligne de texte du texte du programme dans ce fichier. Dans ce cas, c’est le Console.WriteLine("Hello world!");. Vous pouvez également créer une méthode statique nommée Main comme point d’entrée du programme, comme illustré dans l’exemple suivant :

// A skeleton of a C# program
using System;
namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct
        {
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello world!");
        }
    }
}

Dans ce cas, le programme commence à l’accolade d’ouverture de la méthode Main, qui est Console.WriteLine("Hello world!");

Création et exécution de programmes C#

C# est un langage compilé . Dans la plupart des programmes C#, vous utilisez la dotnet build commande pour compiler un groupe de fichiers sources dans un package binaire. Ensuite, vous utilisez la dotnet run commande pour exécuter le programme. (Vous pouvez simplifier ce processus, car dotnet run compile le programme avant de l’exécuter si nécessaire.) Ces outils prennent en charge un langage riche d’options de configuration et de commutateurs de ligne de commande. L’interface dotnet de ligne de commande (CLI), incluse dans le Kit de développement logiciel (SDK) .NET, fournit de nombreux outils pour générer et modifier des fichiers C#.

À compter de C# 14 et .NET 10, vous pouvez créer des programmes basés sur des fichiers, ce qui simplifie la création et l’exécution de programmes C#. Vous utilisez la dotnet run commande pour exécuter un programme contenu dans un seul *.cs fichier. Par exemple, si l’extrait de code suivant est stocké dans un fichier nommé hello-world.cs, vous pouvez l’exécuter en tapant dotnet run hello-world.cs:

#!/usr/local/share/dotnet/dotnet run
Console.WriteLine("Hello, World!");

La première ligne du programme contient la #! séquence pour les interpréteurs de commandes Unix. L’emplacement de l’interface dotnet CLI peut varier selon différentes distributions. Sur n’importe quel système Unix, si vous définissez l’autorisation d’exécution (+x) sur un fichier C#, vous pouvez exécuter le fichier C# à partir de la ligne de commande :

./hello-world.cs

La source de ces programmes doit être un seul fichier, mais sinon toute la syntaxe C# est valide. Vous pouvez utiliser des programmes basés sur des fichiers pour de petits utilitaires en ligne de commande, des prototypes ou d’autres expériences. Les programmes basés sur des fichiers autorisent les directives de préprocesseur qui configurent le système de build.

Expressions et déclarations

Les programmes C# sont générés à l’aide d’expressions et d’instructions. Les expressions produisent une valeur et des instructions effectuent une action :

Une expression est une combinaison de valeurs, de variables, d’opérateurs et d’appels de méthode qui évaluent une valeur unique. Les expressions produisent un résultat et peuvent être utilisées partout où une valeur est attendue. Les exemples suivants sont des expressions :

  • 42 (valeur littérale)
  • x + y (opération arithmétique)
  • Math.Max(a, b) (appel de méthode)
  • condition ? trueValue : falseValue (expression conditionnelle)
  • new Person("John") (création d’objets)

Une déclaration est une instruction complète qui effectue une action. Les instructions ne retournent pas de valeurs ; Au lieu de cela, ils contrôlent le flux du programme, déclarent des variables ou effectuent des opérations. Les exemples suivants sont des déclarations :

  • int x = 42; (instruction de déclaration)
  • Console.WriteLine("Hello"); (instruction d'expression - encapsule une expression d'appel de méthode)
  • if (condition) { /* code */ } (instruction conditionnelle)
  • return result; (instruction de retour)

Distinction clé : les expressions évaluent les valeurs, tandis que les instructions effectuent des actions. Certaines constructions, comme les appels de méthode, peuvent être les deux. Par exemple, Math.Max(a, b) est une expression lorsqu’elle est utilisée dans int result = Math.Max(a, b);, mais devient une instruction d’expression lorsqu’elle est écrite seule en tant que Math.Max(a, b);.

Pour plus d’informations sur les déclarations, consultez Déclarations. Pour plus d'informations sur les membres expression-bodied et d'autres fonctionnalités d'expression, consultez Membres expression-bodied.

Vous en apprendrez davantage sur ces éléments de programme dans la section types du guide des principes de base :

Spécification du langage C#

Pour plus d’informations, consultez Concepts de base dans la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.