【发布时间】:2011-08-05 03:56:14
【问题描述】:
我想创建一个私有成员变量,即使对于拥有它的类也是私有的,并且只能由它的 getter 和 setter 访问。 我知道你可以使用自动属性来做到这一点,比如
private int MyInt{ get; set;}
但我希望能够修改 getter 和 setter,因此(例如)我可以记录该字段已设置的次数(即使是所属类)。像这样的
private int MyInt
{
get{ return hiddenValue; }
set{ hiddenValue = value; Console.Out.WriteLine("MyInt has been set");}
}
其中“hiddenValue”是只能在 getter 和 setter 中访问的成员。 为什么?因为我是一个偏执的防御性程序员,我什至不相信自己:p。
这在 C# 中可行吗?如果是的话,语法是什么?
谢谢。
【问题讨论】:
-
有比偏执狂更充分的理由来争取这个:)。缓存属性并不罕见,即在第一次访问时,通过数据库等检索值并存储在支持字段中,而对于后续访问,getter 使用支持字段。在这一点上,开发人员,尤其是那些刚接触项目的开发人员,可能不清楚是使用属性还是支持字段。
标签: c# .net c#-4.0 c#-3.0 defensive-programming