Molto spesso capita di avere attributi di cui dobbiamo impostare una proprietà di tipo Type. A partire dalla versione 11, C# permette di creare attributi che accettano un parametro generico sostituendo la proprietà di tipo Type.
public class GenericAttribute<T> : Attribute { }
public class MyClass
{
[MyGenericAttribute<string>()]
public void Method()
{
//code
}
}Quando usiamo questa funzionalità dobbiamo tenere presente che ci sono alcune limitazioni. La prima è che visto che gli attributi devono essere completi già a design time, non possiamo usare parametri generici ereditati dalla classe. Per fare un esempio, il seguente codice non è valido.
public class GenericType<T>
{
[GenericAttribute<T>()] // Errore
public void Method()
{
//code
}
}Un'altra limitazione è che alcuni tipi non sono direttamente supportati come dynamic, i tipi nullabili e le tuple. Questi possono essere sostituiti con tipi simili, come object per dynamic, string per string? (e lo stesso per tutti i tipi nullable), e ValueTuple<> per le tuple.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestione delle issue type con GitHub
Recuperare le subissue e il loro stato di completamento in GitHub
Ridurre il reflow cambiando il CSS
Gestione ciclo di vita in .NET Aspire
Abilitare il rolling update su Azure Functions flex consumption
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Interazione con ReconnectModal in Blazor
Introduzione a GitHub Copilot CLI
Integrazione di Copilot in .NET Aspire
Utilizzare noopener e noreferrer nei link HTML
Utilizzo di CSS Scroll Snap per realizzare un carousel
Nuove validazioni Form Blazor
I più letti di oggi
- Future Dev Day - Milano
- Global Azure 2026 - ASPItalia.com - Milano
- Gestire il ciclo di vita di AbortController in Javascript
- Meno password, meno segreti, meno rischio. Al Global Azure 2026 di ASPItalia.com, Stefano Mostarda parlerà di Azure Managed Identity e di come adottare un approccio zero credentials per far comunicare in modo sicuro i servizi cloud, senza gestire credenziali nel codice o nelle pipeline. È uno dei pattern raccomandati da Microsoft per ridurre il carico operativo e migliorare la sicurezza. Milano, 16 aprile 2026. #GlobalAzure #Azure #ManagedIdentity #Security #ASPItalia https://aspit.co/globalazure-26
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Blazor e InputHidden in .NET 10




