C# 9 – Les instructions de niveau supérieur

Dans les applications développées avec le langage C#, par convention, la classe Program contient la méthode Main qui constitue le point d’entrée de l’application. Voici un exemple du fichier Program.cs :


using System;

namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
try
{
Person person = new Person("James", "RAVAILLE");

Console.WriteLine(person.Identity);
}
catch(Exception aEx)
{
Console.WriteLine(aEx.Message);
}
finally
{
Console.Read();
}
}
}
}

L’une des nouveautés apportées par la version 9 du langage C# est de supprimer ce point d’entrée, pour écrire le code qui sera exécuté lors du démarrage de l’application. Bien entendu, seule une classe d’un projet de démarrage d’une solution peut contenu des instructions de niveau supérieur. De plus, il ne peut exister au sein d’un projet une méthode de démarrage Main dans un fichier et un autre contenant des instructions de niveau supérieur. Voici un exemple du fichier Program.cs utilisant cette nouveauté :


using System;
using ConsoleApp3;

try
{
Person person = new Person("James", "RAVAILLE");

Console.WriteLine(person.Identity);
}
catch (Exception aEx)
{
Console.WriteLine(aEx.Message);
}
finally
{
Console.Read();
}

Cette nouveauté a-t-elle un intérêt ? Nous pouvons leur trouver un intérêt dans des applications « outils » de type console afin de simplifier leur implémentation. Les Azure Functions sont un cas d’utilisation typique.
Est-il possible d’accéder aux tableaux des arguments de l’application ? Oui, c’est possible via la variable nommée args, même si elle ne semble par déclarée. La raison est simple : lors de la compilation du bloc de code des instructions de niveau supérieur, elles sont injectées dans une méthode Main similaire au bloc de code montré au début de cet article.

Étiquettes :

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j'alterne les missions de formation et d'ingénierie avec cette plateforme. J'écris ce blog pour transmettre mes connaissances à tout développeur, qu'il soit débutant ou expérimenté.