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
GitHub Copilot CLI in ambienti offline
Creare popup e menu nativi in HTML con la Popover API
Integrare OpenTelemetry direttamente in Azure Monitor
Shadow DOM open e closed sulla gestione delle pagine
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Creare una file based app con C#
Avviare rapidamente un container con Azure Container Apps Express
.NET Aspire vs Dapr: differenze, sovrapposizioni e integrazione
Utilizzo del persistent state di Blazor nel prerendering
Personalizzare le pagine di errore su Azure App Service
Interazione con ReconnectModal in Blazor
Raggruppamento degli aggiornamenti di dipendenze tra directory in un monorepo con Dependabot


