我在代码中看到了这种事情。
public int SomeValue
{
get { return _someValue; }
}
private int _someValue;
然后,类设置_someValue,外部访问器必须使用SomeValue来查看值。
执行此操作的好处是什么,而不是仅将属性设置为仅获取,然后在内部设置类SomeValue?
public int SomeValue { get; }
添加额外的私有变量似乎只是膨胀代码。
答案 0 :(得分:2)
Person
不等于
public int SomeValue
{
get { return _someValue; }
}
private int _someValue;
如果你使用自动属性,则相当于
public int SomeValue { get; }
您无法在内部使用自动属性更改public int SomeValue
{
get { return _someValue; }
}
private readonly int _someValue;
的值,但您可以使用原始代码。
话虽如此,根据您的评论,代码很可能是在C#6之前编写的,当时引入的自动只读属性和原作者太懒或者不知道他可以将_someValue
标记为{ {1}}并且无论如何都不打算更改_someValue
。
答案 1 :(得分:2)
如果您想将代码更新为更新的语法,则等效项为:
public SomeValue { get; private set; }
此致
答案 2 :(得分:1)
如果您使用此自动属性,如果要在程序运行期间更改该值,可以执行哪些操作?