有什么理由在C#中使用私有属性吗?
我刚刚意识到C# 也可以与 访问修饰符一起使用:
private string Password { get; set; }
尽管从技术上讲这很有趣,但是我无法想象何时使用它,因为 涉及的 甚至 :
private string _password;
而且我无法想象何时需要内部 或 私有字段:
private string Password { get; }
要么
private string Password { set; }
但是也许有一个带有 的用例,或者一个get / set可能包含
而不是仅仅返回属性的值,尽管我倾向于使属性严格保持简单,让显式方法执行任何逻辑,例如GetEncodedPassword()
。
附录
不错的答案,仔细阅读它们,我便剔除了私人财产的这些用途:
- 当需要延迟加载私有字段时
- 当专用字段需要额外的逻辑或为计算值时
- 因为私有字段可能很难调试
- 为了“向自己出示合同”
- 作为序列化的一部分在内部转换/简化暴露的属性
- 包装全局变量以在您的类中使用
回答:
如果需要缓存值并想延迟加载它,则可以使用它们。
private string _password;private string Password
{
get
{
if (_password == null)
{
_password = CallExpensiveOperation();
}
return _password;
}
}
以上是 有什么理由在C#中使用私有属性吗? 的全部内容, 来源链接: utcz.com/qa/407573.html