我刚刚意识到c#属性结构也可以与私有访问修饰符一起使用:
private string Password { get; set; }
虽然这在技术上很有趣,但我无法想象我什么时候会使用它,因为私人领域涉及的仪式甚至更少:
private string _password;
我无法想象什么时候我需要能够在内部获取但不设置或设置但不获取私有字段:
private string Password { get; }
or
private string Password { set; }
但也许有嵌套/继承类的用例,或者可能get/set可能包含逻辑,而不仅仅是返回属性的值,尽管我倾向于严格保持属性简单,让显式方法做任何逻辑,例如GetEncodedPassword()。
是否有人出于某种原因在c#中使用私有属性,或者它只是那些技术上可行但在实际代码中很少使用的结构之一?
齿顶高
不错的答案,我仔细阅读了这些私人财产的用途:
当需要惰性加载私有字段时 当私有字段需要额外的逻辑或者是计算值时 因为私有字段很难调试 为了“向自己展示一份合同” 将公开的属性作为序列化的一部分在内部转换/简化 包装要在类中使用的全局变量