Kuidas määrata vaikimisi väärtus C# omadusele või C# automaatselt rakendatud omadusele
C# omadusi või auto implementeeritud omadusi kasutatakse meie klassides laialdaselt väljade ehk muutujate asemel.
Automaatselt rakendatud omadused on kasutusele võetud C# 3.0.
Selles õpetuses õpime 4 erinevat viisi, kuidas määrata C# omadustele vaikeväärtus lihtsate näidete abil.
- Automaatsete omaduste initsiaatorite kasutamine C# 6-s
- Vaikeväärtuse määramine konstruktoris
- Kasutades C# Property Setter
- Kasutades
DefaultValue
Atribuut && Property Setter
Me võime võtta vaikimisi väärtuse omaduse algväärtuseks C#.
Meetod 1 : Automaatsete omaduste initsiaatorite kasutamine C# 6-s
In C# 6 saame deklareerida automaatse initsiaatori omaduse ja määrata vaikeväärtuse ühe rea deklaratsiooniga.
Süntaks on järgmine
class Product{
public string Name {get;set;} = "";
}
Vaikimisi on stringi omaduste väärtus null
, Kasutades C# 6 in-line deklaratsiooni, seame vaikimisi väärtuseks tühja stringi.
Meetod 2: määrame vaikeväärtuse konstruktoris
Vanemates versioonides C#, C# 5 ja allapoole on hea tava määrata C# omaduste vaikeväärtused klassi konstruktoris.
class Product
{
public string Name { get; set; }
public Product()
{
Name = "";
}
}
Meetod 3: Kasutades C# Property Setter’i
Me võime kasutada C# omaduse määrajat, et määrata automaatselt rakendatud omadustele vaikeväärtus.
class Product
{
private string _name = "";
public string Name {
get { return _name;}
set { _name = value;}
}
}
meetod: DefaultValue
atribuutide && omaduste määraja kasutamine
Ülaltoodud näites oleme loonud privaatse muutuja ja määranud talle vaikimisi väärtuse.
Selle asemel võime kasutada DefaultValue
atribuuti, et määrata vaikeväärtus.
class Product
{
private string _name;
[DefaultValue("")]
public string Name {
get { return _name;}
set { _name = value;}
}
}
Pea meeles DefaultValue
atribuut töötab ainult koos omaduse määrajaga.
Allpool olev kood ei määra omadusele vaikeväärtust. Vaikeväärtus on ikkagi null
.
public class Product
{
[DefaultValue("")]
public string Name { get; set; }
}
Kui kasutate DefaultValue
atribuuti, peate kasutama omaduse määrajat.
Kokkuvõte
Kui kasutate C# 6, kasutage in-line deklaratsiooni, et määrata vaikeväärtus C# omadustele, muidu määrake vaikeväärtus konstruktoris.