私有变量的自动属性是否不必要?

dev*_*der 4 c# class automatic-properties

我看了别人的代码,发现了这段代码

private string _deviceName { get; set; }
private string _deviceAlias { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的想法是私有变量的那些自动属性是不必要的.我这么认为是对的吗?

Ree*_*sey 8

我的想法是私有变量的那些自动属性是不必要的.我这么认为是对的吗?

它们没有必要,但它们也没有真正伤害任何东西.话虽这么说,它们也没有真正帮助任何东西,因为它们纯粹是一个实现细节,所以以后从一个领域转换到一个属性不会是一个突破性的变化.

可能这样做的唯一真正原因是,如果你知道,将来你会想要获取或设置自定义逻辑,并且你正在使用需要语法的属性不同的东西,例如反射.在这种情况下,现在将它们设置为自动属性可以防止以后需要更改代码.

  • @ZnArK,您继续*混淆验证API的公共表面并验证内部实现细节.根据你的逻辑,如果你有'private string foo {get; 组; }`和`public string Foo {get {return foo; } set {foo = value; `:你建议在`foo.set`和`Foo.set`进行验证,这完全是胡说八道. (2认同)