我已经开始使用代码契约,并发现很难立即发现方法的“本质”。
以这个(非常简单)为例:
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);
}
现在我很想将合约放在一个区域中,以便将它们隐藏起来,但我担心我会失去一个很好的优势,即能够浏览该方法并了解它的期望。
您如何保持合同“整洁”?还是我太挑剔了?
查看 ContractClass 和 ContractClassFor 属性。这允许您在单独的程序集中编写带有代码协定的类。这允许您将合同用于开发工作,不会使您的代码混乱,也意味着您不必使用实时代码部署合同:
合约类别属性 http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contractclassattribute.aspx
属性的契约类 http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contractclassforattribute.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)