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.