Jak nastavit výchozí hodnotu vlastnosti C# nebo C# automaticky implementované vlastnosti
C# vlastnosti nebo automaticky implementované vlastnosti se v našich třídách hojně používají místo polí, tj. proměnných.
Automaticky implementované vlastnosti jsou zavedeny v C# 3.0.
V tomto tutoriálu se na jednoduchých příkladech naučíme 4 různé způsoby, jak nastavit výchozí hodnotu C# vlastnostem.
- Používání automaticky spouštěných inicializátorů vlastností v C# 6
- Přiřazení výchozí hodnoty v konstruktoru
- Použití nastavovače vlastností C#
- Použití DefaultValueAtribut && Property Setter
Jako počáteční hodnotu vlastnosti můžeme předpokládat výchozí hodnotu v C#.
Metoda 1 : Použití automatických inicializátorů vlastností v C# 6
V C# 6 můžeme deklarovat automaticky implementovanou vlastnost a nastavit výchozí hodnotu v jednořádkové deklaraci.
Syntaxe je následující
class Product{
    public string Name {get;set;} = "";
}
Ve výchozím nastavení bude mít řetězcová vlastnost hodnotu null, Pomocí řádkové deklarace C# 6 nastavujeme výchozí hodnotu jako prázdný řetězec.
Metoda 2: Přiřazení výchozí hodnoty v konstruktoru
Ve starších verzích C#, C# 5 a nižších je dobrým zvykem nastavit výchozí hodnoty vlastností C# v konstruktoru třídy.
class Product 
{
    public string Name { get; set; }
    public Product()
    {
        Name = "";
    }
}
Metoda 3: Použití nastavovače vlastností C#
K přiřazení výchozí hodnoty automaticky implementovaným vlastnostem můžeme využít setter vlastností C#.
class Product 
{
    private string _name = "";
    public string Name { 
        
        get { return _name;}
        set { _name = value;} 
    }
}
metoda 4: Použití DefaultValue Attribute && Property Setter 
Ve výše uvedeném příkladu jsme vytvořili soukromou proměnnou a přiřadili jí výchozí hodnotu.
Místo toho můžeme k přiřazení výchozí hodnoty použít atribut DefaultValue.
class Product 
{
    private string _name;
    [DefaultValue("")]
    public string Name { 
        
        get { return _name;}
        set { _name = value;} 
    }
}
Nezapomeňte, že ** atributDefaultValue funguje pouze s nastavovačem vlastností.**
Níže uvedený kód nepřiřadí vlastnosti výchozí hodnotu. Výchozí hodnota je stále null.
public class Product
{
    [DefaultValue("")]
    public string Name { get; set; }
}
Pokud používáte atribut DefaultValue, musíte použít property setter.
Shrnutí
Pokud používáte C# 6, použijte in-line deklaraci pro nastavení výchozí hodnoty vlastností C#. V opačném případě nastavte výchozí hodnotu v konstruktoru.