Aggiungere un attributo al campo privato di una proprietà automatica in C# 7.3

di Stefano Mostarda, in .NET Framework, C# 7.1, C# 7.2,

Sin dalla seconda versione di C#, abbiamo potuto creare proprietà con getter e setter senza doverne scrivere il codice. Il compilatore genera in automatico un membro privato e il codice necessario per impostarlo attraverso la proprietà. Essendo il membro privato generato automaticamente dal compilatore, fino alla versione 7.2 di C# non abbiamo nessun modo di impostare un attributo sul campo quindi se abbiamo questa necessità dobbiamo scrivere tutto il codice a mano.
A partire da C# 7.3 questa limitazione è stata superata grazie alla nuova sintassi [field: Attributo] che permette di specificare che l'attributo non si applica alla proprietà, bensì al membro privato generato dal compilatore.

[Serializable]
public class User {
  public string Username { get; set; }

  [field: NonSerialized]
  public string Password { get; set; }
}

In questo caso, l'attributo NonSerialized viene applicato al membro privato e non alla proprietà con il risultato che quando serializziamo un'instanza di User, solo la username viene generata.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi