如何为C# 属性或C# 自动实现的属性设置默认值
C# 属性或自动实现的属性在我们的类中广泛使用,以代替字段,即变量。
自动实现的属性是在C# 3.0中引入的。
在本教程中,我们将通过简单的例子学习4种不同的方法来为C# 属性设置默认值。
1.在C# 6中使用自动属性初始化器
2.在构造函数中分配默认值
3.使用C# 属性设置器
4.使用DefaultValue
Attribute && Property Setter
我们可以在C# 中假设默认值作为属性的初始值。
方法1:在C# 6中使用自动属性初始化器
在C# 6中,我们可以在单行声明中声明自动实现的属性并设置默认值。
其语法是
class Product{
public string Name {get;set;} = "";
}
默认情况下,字符串属性会有null
,通过使用C# 6的行内声明,我们将默认值设置为空字符串。
方法2:在构造函数中指定默认值
在旧版本的C# 、C# 5及以下版本中,在类的构造函数中设置C# 属性的默认值是一个好的做法。
class Product
{
public string Name { get; set; }
public Product()
{
Name = "";
}
}
方法3:使用C# 属性设置器
我们可以利用C# 属性设置器来为自动实现的属性分配一个默认值。
class Product
{
private string _name = "";
public string Name {
get { return _name;}
set { _name = value;}
}
}
方法4:使用DefaultValue
Attribute && Property Setter
在上面的例子中,我们创建了一个私有变量并分配了一个默认值。
相反,我们可以使用DefaultValue
属性来分配默认值。
class Product
{
private string _name;
[DefaultValue("")]
public string Name {
get { return _name;}
set { _name = value;}
}
}
记住 DefaultValue
属性只适用于属性设置器。
下面的代码不会为该属性分配默认值。默认值仍然是null
。
public class Product
{
[DefaultValue("")]
public string Name { get; set; }
}
如果你使用DefaultValue
属性,你必须使用属性设置器。
摘要
如果你使用C# 6,使用行内声明为C# 属性设置默认值,否则就在构造函数中设置默认值。