我刚刚意识到C# 属性构造 也可以与 私有 访问修饰符一起使用:
private string Password { get; set; }
尽管从技术上讲这很有趣,但是我无法想象何时使用它,因为 私有领域所 涉及的 仪式 甚至 更少 :
private string _password;
而且我无法想象何时需要内部 获取 但不 设置 或 设置 但不 获取 私有字段:
private string Password { get; }
要么
private string Password { set; }
但是也许有一个带有 嵌套/继承类 的用例,或者一个get / set可能包含 逻辑 而不是仅仅返回属性的值,尽管我倾向于使属性严格保持简单,让显式方法执行任何逻辑,例如GetEncodedPassword()。
GetEncodedPassword()
是否有人出于某种原因在C#中使用私有属性,还是仅仅是在技术上尚未实际使用的代码构造之一?
不错的答案,仔细阅读它们,我便剔除了私人财产的这些用途:
如果需要缓存值并想延迟加载它,则可以使用它们。
private string _password; private string Password { get { if (_password == null) { _password = CallExpensiveOperation(); } return _password; } }