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.
À compter de .NET 6, le modèle de projet pour les nouvelles applications console C# génère le code suivant dans le fichier Program.cs :
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Pour .NET 5 et versions antérieures, le modèle d’application console génère le code suivant :
using System;
namespace MyApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Dans le code précédent, l’espace de noms réel dépend du nom du projet.
Ces deux formulaires représentent le même programme. Les deux sont valides en C#. Lorsque vous utilisez la version la plus récente, vous devez uniquement écrire le corps de la Main méthode. Le compilateur génère une classe avec une Program méthode de point d’entrée et place toutes vos instructions de niveau supérieur dans cette méthode. Le nom de la méthode générée n’est pas Main: il s’agit d’un détail d’implémentation que votre code ne peut pas référencer directement. Vous n’avez pas besoin d’inclure les autres éléments de programme ; le compilateur les génère pour vous. Pour plus d’informations sur le code généré par le compilateur lorsque vous utilisez des instructions de niveau supérieur, consultez les instructions de niveau supérieur dans la section Notions de base du Guide C#.
Lorsque vous utilisez des didacticiels qui ne sont pas mis à jour pour utiliser .NET modèles 6+, utilisez l'une des deux options suivantes :
- Utilisez le nouveau style de programme, en ajoutant de nouvelles instructions de niveau supérieur à mesure que vous ajoutez des fonctionnalités.
- Convertissez le nouveau style de programme en style plus ancien, avec une
Programclasse et uneMainméthode.
Si vous souhaitez utiliser les anciens modèles, consultez Utiliser l’ancien style de programme plus loin dans cet article.
Utiliser le nouveau style de programme
Les fonctionnalités qui simplifient le nouveau programme sont des instructions de niveau supérieur, des directives globales usinget des directives implicitesusing.
Le terme instructions de niveau supérieur signifie que le compilateur génère les éléments de classe et de méthode pour votre programme principal. Le compilateur déclare la méthode de classe et de point d’entrée générées dans l’espace de noms global. Examinez le code de la nouvelle application et imaginez qu’elle contient les instructions à l’intérieur de la Main méthode générée par des modèles antérieurs, mais dans l’espace de noms global.
Ajoutez d’autres instructions au programme, tout comme vous ajoutez des instructions à votre Main méthode dans le style traditionnel.
Access args (arguments de ligne de commande), utilisez awaitet définissez le code de sortie. Vous pouvez même ajouter des fonctions. Le compilateur les crée en tant que fonctions locales imbriquées à l’intérieur de la méthode de point d’entrée généré. Les fonctions locales ne peuvent pas inclure de modificateurs d’accès (par exemple, public ou protected).
Les instructions de niveau supérieur et les directives implicites using simplifient le code qui compose votre application. Pour suivre un didacticiel existant, ajoutez toutes les nouvelles instructions au fichier Program.cs généré par le modèle. Imaginez que les instructions que vous rédigez sont entre les accolades ouvertes et fermées de la méthode Main du didacticiel.
Si vous préférez l’ancien format, copiez le code à partir du deuxième exemple de cet article et poursuivez le didacticiel comme précédemment.
Pour plus d’informations sur les instructions de niveau supérieur, consultez l’exploration du didacticiel sur les instructions de niveau supérieur.
Directives implicites using
Le terme directives implicites using signifie que le compilateur ajoute automatiquement un ensemble de using directives en fonction du type de projet. Pour les applications console, les directives suivantes sont implicitement incluses dans l’application :
using System;using System.IO;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Threading;using System.Threading.Tasks;
D’autres types d’applications incluent d’autres espaces de noms courants pour ces types d’applications.
Si vous avez besoin using de directives qui ne sont pas implicitement incluses, ajoutez-les au fichier .cs qui contient des instructions de niveau supérieur ou à d’autres fichiers .cs . Pour using les directives dont vous avez besoin dans tous les fichiers .cs dans une application, utilisez des directives globalesusing.
Désactiver les directives implicites using
Pour supprimer ce comportement et contrôler manuellement tous les espaces de noms de votre projet, ajoutez <ImplicitUsings>disable</ImplicitUsings> dans votre fichier projet <PropertyGroup>, comme illustré dans l’exemple suivant :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Directives globales using
Une directive globale using importe un espace de noms pour toute votre application au lieu d’un seul fichier. Ajoutez ces directives globales en incluant un <Using> élément dans le fichier projet ou en ajoutant la global using directive à un fichier de code.
Pour supprimer une directive implicite usingspécifique, ajoutez un <Using> élément avec un Remove attribut à votre fichier projet. Par exemple, si la fonctionnalité des directives implicites using est activée avec <ImplicitUsings>enable</ImplicitUsings>, l’ajout de l’élément suivant <Using> supprime l'espace de noms System.Net.Http de la liste des espaces de noms importés implicitement :
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
Utiliser l’ancien style de programme
À compter de .NET SDK 6.0.300, le modèle console a une option --use-program-main. Utilisez-le pour créer un projet de console qui n’utilise pas d’instructions de niveau supérieur et qui a une Main méthode.
dotnet new console --use-program-main
Le résultat généré Program.cs est le suivant :
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Utilisez l’ancien style de programme dans Visual Studio
Lorsque vous créez un nouveau projet, les étapes de configuration vous dirigent vers la page de configuration des informations supplémentaires. Dans cette page, activez la case à cocher Ne pas utiliser les instructions de niveau supérieur .
Une fois votre projet créé, le
Program.cscontenu est le suivant :namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Remarque
Visual Studio conserve la valeur d’option pour la prochaine fois que vous créez un projet basé sur le même modèle. Si vous avez créé un projet d’application console avec la case à cocher Ne pas utiliser les instructions de niveau supérieur cochée, cette option est cochée lorsque vous créez le projet d’application console suivante.
Le contenu du fichier Program.cs peut être différent de celui défini dans les paramètres globaux de l’éditeur de texte Visual Studio ou du fichier EditorConfig.
Pour plus d’informations, consultez Créer des paramètres d’éditeur portables et personnalisés avec EditorConfig et Options, Éditeur de texte, C#, Avancé.