Rappel
Lorsque de l’on écrit des programmes avec un donc un point d’entrée principale il existe à l’heure actuelle différentes méthodes que l’on peut intégrer.
But
On aimerait pouvoir avoir plus de flexibilité dans l’écriture de cette partie de code. L’objectif est de pouvoir mettre un ensemble d’instructions avant la déclaration : static class Program.
Ce faisant, si du code est présent en début de source alors cette section sera omise. Cela permettra dans certains programme de simplifier et clarifier le code, cela peut aussi servir dans le cadre d’apprentissage.
Ecriture classique
Voici un ensemble de code C# d’un projet console dans une écriture classique :
using System; namespace CSharpTopLevelProgramDemo { class Program { static void Main(string[] args) { var name = args[0]; Console.WriteLine($"Welcome aboard C# 9, {name}."); Console.ReadLine(); } } }
using System; namespace CSharpTopLevelProgramDemo { class Program { static void Main(string[] args) { var name = args[0]; Console.WriteLine($"Welcome aboard C# 9, {name}."); MyLocalFunction(); Console.ReadLine(); void MyLocalFunction() { Console.WriteLine("This is my local function"); } } } }
Ecriture Top-Level
Voici les mêmes exemples mais avec l’écriture “Top-Level” de C# 9. C’est quand même vraiement plus claire et plus simple.
using System; var name = args[0]; Console.WriteLine($"Welcome aboard C# 9, {name}."); Console.ReadLine();
using System; var name = args[0]; Console.WriteLine($"Welcome aboard C# 9, {name}."); MyLocalFunction(); Console.ReadLine(); void MyLocalFunction() { Console.WriteLine("This is my local function"); }
Rien de vous empêche à l’heure actuelle de faire des déclarations de classes dans le code même Top-Level comme suit :
using System; var name = args[0]; Console.WriteLine($"Welcome aboard C# 9, {name}."); MyClass a = new MyClass(); Console.WriteLine(a.Message()); Console.ReadLine(); public class MyClass { public int MyProperty { get; set; } public string Message() { return "FooBar"; } }
Et cela fonctionne impeccablement bien.

Ajouer un commentaire