Una delle cose “noiose“ quando si scrive un’applicazione, ad esempio, Console è quando nel metodo Main si deve avere a che fare con codice asincrono, si finisce per scrivere una cosa del tipo:
public void Main(string[] args)
{
MainAsync(args).GetAwaiter().GetResult();
}
public Task MainAsync(string[] args)
{
return Task.CompletedTask;
}
che ultimamente si può ulteriormente accorciare in:
public void Main(string[] args) => MainAsync(args).GetAwaiter().GetResult();
public Task MainAsync(string[] args)
{
return Task.CompletedTask;
}
Usando i nuovi expression-bodied members. Con C# 7.1 si può finalmente eliminare la parte sincrona, limitandosi a scrivere:
public static async Task Main(string[] args)
{
return Task.CompletedTask;
}
Le funzionalità nuove sono opt-in e devono essere attivate nel file di progetto aggiungendo ad esempio:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>