【发布时间】:2013-03-30 21:36:27
【问题描述】:
所以我听说像这样验证属性中的值:
//dummy example, let's assume that I want my value without dots
public string MyProp
{
set
{
if(value.Contains('.'))
throw new ArgumentException("Must not contain '.'", "value");
}
}
错了,我应该避免它。
但在早些时候我被告知这是好方法。我们可以使用封装,只有一个地方可以检查,DRY 等。
我的小例子有什么问题?
【问题讨论】:
-
没什么问题,但是 a) 我宁愿抛出一个
ArgumentException,b) 你忘了实际设置值! -
你不能只扔一个字符串。你需要抛出一个异常。
-
@jrummell 不重复。在那个问题中,他们不讨论例外情况
-
这是个好办法。 .NET 框架的几个部分做同样的事情。
标签: c# dry encapsulation