Vlastnosti (properties) v C# umožňují publikovat privátní fieldy navenek. Bez konceptu vlastností se v zásadě obejdete: některé programovací jazyky ho vůbec nemají a nahrazují je getter a setter metodami:
private string firstName;
public string GetFirstName() {
return this.firstName;
}
public void SetFirstName(string value) {
this.firstName = value;
}
V C# ale properties jsou odjakživa a jejich klasická konstrukce syntaxí C# 1.0 vypadá takto:
private string firstName;
public string FirstName {
get {
return this.firstName;
}
set {
this.firstName = value;
}
}
S přibývajícími verzemi se však zápis čím dál tím víc zjednodušoval, takže dneska si v řadě případů vystačíme s tím nejjednodušším:
public string FirstName { get; set; }
Vlastnosti toho ale umí mnohem víc. Lze jim nastavit výchozí hodnoty, jejich tělo může být v podobě expression a aktuální verze C# 9.0 přinesla nové klíčové slovo init
, které umožňuje vytvářet immutable typy. O tom všem je řeč v nejnovějším dílu našeho seriálu o C#.