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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.