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#.