Sin dalle prime versioni di C#, abbiamo sempre avuto la possibilità di dare un alias ai namespace e alle classi. Questa funzionalità torna comoda quando abbiamo tipi o namespace con diversi nomi in librerie diverse e dobbiamo utiizzarli nella stessa classe. Per fare un esempio, quardiamo il prossimo snippet.
// Namespace alias using MW = MyLibrary.Web; using SW = SomeLibrary.Web; var serialized1 = MW.Serializer.Serialize("{}"); var serialized2 = SW.Serializer.Serialize("{}"); // Type alias using Serializer = MyLibrary.Serializer; var serialized = Serializer.Serialize("{}");
Nel primo esempio abbiamo una classe Serializer presente sia in MyLibrary.Web che in SomeLibrary.Web. Invece di usare il nome completo del namespace prima di usare le classi, usiamo un alias. Nel secondo esempio, invece di dare un alias al namespace, diamo un alias direttamente alla classe.
Con C# 12, la capacità di dare un alias è stata ulteriormente espansa ai tipi generici e alle tuple. Vediamo un esempio.
using People = System.Collections.Generic.List<Person>; People GetPeople() { return [ new Person() { Id = 1, Name = "Stefano Mostarda"} ]; } class Person { public int Id {get; set;} public string Name {get; set;} }
In questo codice, abbiamo creato l'alias People per il tipo List
Lo stesso discorso è valido anche per le tuple.
using Person = (int Id, string Name);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione alle Container Queries
Implementare l'infinite scroll con QuickGrid in Blazor Server
Disabilitare automaticamente un workflow di GitHub (parte 2)
Creare gruppi di client per Event Grid MQTT
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Recuperare l'ultima versione di una release di GitHub
Routing statico e PreRendering in una Blazor Web App
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Creare una custom property in GitHub