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
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare un service principal per accedere a Azure Container Registry
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Utilizzare i primary constructor in C#
Usare le collection expression per inizializzare una lista di oggetti in C#
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Eseguire le GitHub Actions offline
Sfruttare lo streaming di una chiamata Http da Blazor
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Usare lo spread operator con i collection initializer in C#
I più letti di oggi
- Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
- .@GentiliMoreno tra poco con #VS2015 per lo sviluppatore web e #npm, #bower, #gulp: https://aspit.co/VS2015-live #aspilive
- Effettuare lo shutdown di un package MTS con uno script ASP
- 100$ in 3 anni per #vs10, #expression, #windowsserver e tanto altro ancora? c'è il programma WebSiteSpark: http://u.aspitalia.com/pi
- Formattare il log delle pipeline YAML di Azure DevOps