Dichiarare le proprietà obbligatorie tramite la parola chiave required in C#

di Stefano Mostarda, in .NET Framework,

C# 11 introduce la nuova parola chiave required che possiamo anteporre davanti a proprietà e campi di una classe per specificare che questi devono obbligatoriamente essere inizializzati da un costruttore o da un object initializer. Grazie a questa funzionalità, i campi obbligatori di una classe non possono non essere inizializzati sia che si utilizzi un costruttore sia che si utilizzi un object initializer.
I costruttori che inizializzano tutti i membri marcati con required devono essere marcati con l'attributo SetsRequiredMembers. Questo perché se una classe ha più costruttori, e non tutti inizializzano i membri obbligatori, il compilatore potrà generare un'eccezione quando questi vengono usati e non si usa un object initializer per i campi obbligatori mancanti.

public class Person
{
  public Person() { }

  [SetsRequiredMembers]
  public Person(string firstName, string lastName)
  {
    FirstName = firstName;
    LastName = lastName;
  }
      
  public required string FirstName { get; init; }
  public required string LastName { get; init; }

  public int? Age { get; set; }
}


var p1 = new Person("Stefano", "Mostarda"); // Ok
var p2 = new Person() 
{
  FirstName = firstName,
  LastName = lastName
}; // Ok
var p3 = new Person(); //Ko

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