我问自己很长一段时间使用带有修饰符get和私有集的属性与具有返回私有字段的属性有什么优点和缺点。
以下是一个例子:
public bool Example { get; private set; }
和
private bool example;
public bool Example { get { return example; } }
使用其中一个的缺点和优点是什么?
答案 0 :(得分:4)
少了1行代码。除此之外,它们完全相同的功能。它本质上是语法糖。
答案 1 :(得分:0)
有很多东西,即使它是自动设置的语法糖,我认为这取决于设计
public bool Example { get; set; }
上面一行将有一个由我们无法访问的编译器创建的私有后台字段。但是如果创建一个支持字段,我们将可以访问它,我们可以像下面的那样用它进行空检查
private bool example;
public bool Example
{
get
{
return example;
}
set
{
if(value != example)
{
example = value;
// here you can write some property change notifications or some other logic.
}
}
}
两种方式最终结果相同