【发布时间】:2017-11-10 07:24:37
【问题描述】:
有什么方法可以强制我的其他班级访问属性设置器而不是支持字段?考虑以下笨拙的代码:
public class Brittle
{
private string _somethingWorthProtecting;
public string SomethingWorthProtecting
{
get { return _somethingWorthProtecting; }
set
{
_somethingWorthProtecting = value;
ReallyNeedToDoThisEverTimeTheValueChanges();
}
}
public void OhDearWhatWasIThinking()
{
_somethingWorthProtecting = "Shooting myself in the foot here, aren't I?";
}
}
据我所知,C# 没有提供任何机制来防止类开发人员犯此错误。 (在这种情况下,自动属性显然不是一种选择。)是否有设计模式或实践可以帮助防止这种无意的结束?
【问题讨论】:
-
如果它如此重要,那么值得进行单元测试
-
“防止类开发者犯这个错误” - 说真的,这太过分了。如果修改该类的人需要这样的帮助,那么不要让这个人修改任何东西。评论应该足够了。从另一端,您可以给这个字段 dedicated 名称:
_doNotModifyMePlx.
标签: c# properties backing-field