Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Conseil / Astuce
Vous débutez avec le développement de logiciels ? Commencez par commencer par les didacticiels De prise en main . Ils vous guident tout au long de l’écriture de vos premiers programmes C# avant d’en savoir plus sur la structure des programmes.
Maîtrisez-vous une autre langue ? Vous souhaiterez peut-être parcourir la section Prise en main de la syntaxe spécifique à C#, puis revenir ici.
Vous créez des programmes C# à partir de ces blocs de construction principaux : les espaces de noms organisent vos types, les types (classes, structs, interfaces, énumérations et délégués) définissent le comportement et les données, et les instructions et les expressions exécutent des tâches au moment de l’exécution. La façon dont vous structurez le point d’entrée dépend du style d’application que vous choisissez.
Choix du style de votre application
Lorsque vous créez un programme C#, effectuez deux choix indépendants sur la façon de la structurer :
-
Basé sur des fichiers ou sur un projet ?
- Une application basée sur un fichier s’exécute à partir d’un seul
.csfichier sans fichier projet. - Une application basée sur un projet utilise un
.csprojfichier et peut s’étendre sur plusieurs fichiers sources.
- Une application basée sur un fichier s’exécute à partir d’un seul
-
Instructions ou
Mainméthodes de niveau supérieur ?- Les instructions de niveau supérieur vous permettent d’écrire du code exécutable directement en haut d’un fichier.
- Une
Mainméthode encapsule le point d’entrée dans une méthode statique explicite.
Les applications basées sur un projet et les applications basées sur des fichiers prennent en charge l'un ou l'autre point d'entrée.
Applications basées sur des fichiers et applications basées sur des projets
À compter de C# 14 et .NET 10, les applications basées sur des fichiers vous permettent d’exécuter un programme contenu dans un seul *.cs fichier sans fichier projet. Stockez le code suivant dans un fichier nommé hello-world.cs et exécutez-le avec dotnet run hello-world.cs ou dotnet hello-world.cs:
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
Note
La #! ligne permet aux interpréteurs de commandes Unix d’exécuter le fichier directement. Sur n’importe quel système Unix, définissez l’autorisation d’exécution (+x) et exécutez le fichier à partir de la ligne de commande.
Les applications basées sur des fichiers prennent en charge toutes les syntaxes C# et peuvent utiliser des directives de préprocesseur pour configurer le système de génération. Utilisez des applications basées sur des fichiers pour les petits utilitaires en ligne de commande, les prototypes et les expériences. Une application basée sur un fichier se compose d’un seul fichier dans un répertoire :
my-app/
└── hello-world.cs
Les applications basées sur des projets utilisent un .csproj fichier et les commandes CLI .NETdotnet new, dotnet build et le dotnet run workflow. Choisissez des applications basées sur des projets lorsque votre programme s’étend sur plusieurs fichiers ou nécessite une configuration de build affinée. Une application basée sur un projet inclut un fichier projet avec un ou plusieurs fichiers sources :
my-app/
├── my-app.csproj
├── Program.cs
├── Models/
│ └── Person.cs
└── Services/
└── GreetingService.cs
Si votre application basée sur des fichiers augmente, vous pouvez facilement la convertir en application basée sur un projet. Exécutez dotnet project convert pour générer un fichier projet à partir de votre fichier source existant.
Si vous savez que votre application a besoin de plusieurs fichiers sources à partir du début, commencez par une application basée sur un projet. Vous évitez l’étape de conversion et pouvez organiser votre code en fichiers distincts immédiatement.
Instructions de niveau supérieur contre Main méthode
En utilisant des instructions de niveau supérieur, vous pouvez écrire du code exécutable directement dans un fichier sans l’encapsuler dans une classe et Main une méthode. Ce style est la valeur par défaut lorsque vous créez une application console avec dotnet new console. L’exemple suivant montre un programme C# moderne qui utilise des instructions de niveau supérieur :
Console.WriteLine("Hello, World!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
}
Un seul fichier d’un projet peut avoir des instructions de niveau supérieur et le point d’entrée est la première ligne de texte du programme dans ce fichier. Lorsque vous créez des programmes plus volumineux, vous incluez d’autres éléments de programme.
Vous pouvez également définir une méthode statique Main explicite comme point d’entrée du programme :
// A skeleton of a C# program using an explicit Main method
namespace YourNamespace;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Les deux styles de point d’entrée fonctionnent avec des applications basées sur des fichiers et basées sur des projets. Les deux styles prennent en charge les mêmes fonctionnalités.
Création et exécution de programmes C#
C# est un langage compilé . Pour les applications basées sur des projets, utilisez la dotnet build commande pour compiler des fichiers sources dans un package binaire. Utilisez dotnet run pour générer et exécuter en une seule étape. L’interface dotnet CLI, incluse dans le Kit de développement logiciel (SDK) .NET, fournit de nombreux outils pour créer, générer et gérer des projets C#.
Pour les applications basées sur des fichiers, dotnet run hello-world.cs compile et exécute directement le fichier unique , aucun fichier projet n’est requis.
Expressions et déclarations
Si vous avez suivi les didacticiels De prise en main , vous avez déjà écrit des expressions et des instructions. Chaque ligne de code que vous avez tapée était l’une ou l’autre (ou les deux). Nous allons maintenant définir ces termes.
Les expressions et les instructions sont les blocs de construction fondamentaux d’un programme C#. Une expression produit une valeur. Une instruction effectue une action et se termine généralement par un point-virgule.
Voici les expressions suivantes :
-
42(valeur littérale) -
x + y(opération arithmétique) -
Math.Max(a, b)(appel de méthode qui produit une valeur) -
condition ? trueValue : falseValue(expression conditionnelle) -
new Person("John")(création d’objets)
Une instruction effectue une action. Les instructions contrôlent le flux du programme, déclarent des variables ou appellent des opérations. Les déclarations suivantes sont :
-
int x;(instruction de déclaration) -
int x = 42;(instruction de déclaration avec initialisation) -
Console.WriteLine("Hello");(instruction d’appel de méthode) -
if (condition) { /* code */ }(instruction conditionnelle) -
return result;(instruction de retour)
Les instructions contiennent souvent des expressions et des expressions peuvent s'imbriquer dans d'autres expressions. Par exemple, l’instruction de déclaration suivante affecte f le résultat d’une expression d’ajout. Cette expression d’ajout ajoute les résultats de deux expressions d’appel de méthode :
var maxResult = Math.Max(a, b) + Math.Max(c, d);
Pour plus d’informations sur les déclarations, consultez Déclarations. Pour obtenir plus d’informations sur les membres à expression corporelle, consultez les membres à expression corporelle.