有什么理由在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

回到顶部