【发布时间】:2011-06-27 10:42:03
【问题描述】:
我已经开始使用代码契约,并发现很难立即发现方法的“胆量”。
举这个(非常简单的)例子:
public static void UserAddNew(string domain, string username, string displayName)
{
Contract.Assert(!string.IsNullOrWhiteSpace(domain));
Contract.Assert(!string.IsNullOrWhiteSpace(username));
Contract.Assert(!string.IsNullOrWhiteSpace(displayName));
LinqDal.User.UserAddNew(domain, username, displayName);
}
现在我很想将合同放在一个区域中,以便将它们隐藏起来,但我担心我会失去一个很好的优势,即能够浏览该方法并了解它是什么预计。
您如何保持合同“整洁”?还是我太挑剔了?
【问题讨论】:
-
可能重复:“如何向我的应用程序添加新功能而不会使我的代码看起来混乱?”
-
AFAICT,这不是新的或特定于代码合同的 - 该方法甚至在 CC 之前检查参数,不是吗?除了一点空白之外,我没有任何解决方案……
-
我同意 Mormegil 的观点。在 CC 之前,你应该写“if(condition) throw new argumentexception”。
-
只是一个相关说明,在这里使用 Contract.Requires() 而不是 Contract.Assert() 会更有意义。调用代码有所不同。
标签: c#-4.0 code-formatting code-contracts contracts