in C#, Programmazione

C# 9.0 – Top-Level Statements

Top-level Statement è stato introdotto a partire da C# 9.0. Supponiamo di lavore all’interno di una console application, molto semplice e che permetta di stampare a video il classico “Hello world!”:

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

Scomponendo in diverse parti il codice precedente possiamo evidenziare:

  • la parte relativa alle inclusioni delle using
  • la definizione del namespace
  • la definzione della classe Program
  • la definizione del metodo static Main con gli argomenti opzionali

In C# 9.0 il Top-level Statement consente di semplificare la scrittura del codice precedente, dando per scontato alcuni dei punti precedenti. In particolare, possiamo scrivere:

using System;  

Console.WriteLine("Hello world!");  

Nel codice iniziale il metodo Main(…) era l’entry point per il nostro programma, ora cosa è diventato ?

Inoltre, nell’esempio precedente era possibile passare dei parametri opzionali.

Ora come è possibile passare dei parametri ? Domande tutte pertinenti. Vediamo cosa succede in fase di compilazione.

Durante la fase di compilazione C# 9.0 genera comunque il metodo Main ed accetta i suoi parametri.

Quindi nel codice possiamo accedere normalmente ai parametri utilizzando la variabile “nascosta” args.

Nelle versioni di precedenti di C# non potevamo avere molteplici metodi main, allo stesso modo non possiamo avere molteplici Top-Level Statement.