我开始使用代码合约,并发现它使得立即识别方法的“实质”变得困难。
看这个(非常简单的)例子:
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);
}
现在我想把合同放在一个区域里,这样它们就可以被隐藏起来,但我担心失去了一个很好的优势,即能够瞥一眼方法并看到它期望什么。
你是怎样保持你的合同“整洁”的?或者说我太过于挑剔了吗?