我应该使用 CodeContract 还是 CuttingEdge.Conditions?
我研究了使用条件框架来验证数据,而不是 if(cond) throw new SomeException(); SomeFramework.MakeSure(cond); 最后我的选择是使用 CodeContract 或 …
为什么代码契约会生成 MyAssembly.Contracts.pdb 文件?
在项目属性的“代码合同”选项卡中将“合同引用程序集”设置为“生成”时,会在输出文件夹的“CodeContracts”子文件夹中创建两个附加文件(针对名为…
使用代码契约指定返回值可能为空
有没有一种方法可以使用代码契约显式指定返回值可以为空? 我担心的是,没有 Contract.Ensures(Contract.Result() != null) 的方法将来可能会被错误地…
与 null 比较时的 C# Contract.Result 类型
令人烦恼的是 Contract.Result 在某些情况下无法计算出其类型。请参阅下面的手册摘录。 方法返回值 在后置条件中,可以通过表达式 Contract.Result() …
为什么 Contract.Ensures(Contract.Result<...>!=null) 不起作用?
为什么我收到警告“CodeContracts:可能在空引用‘流’上调用方法。”在此代码示例上? public static void Test() { var request = (HttpWebRequest)…
C# - 代码合约 - 检测到的表达式语句评估潜在的副作用
我刚刚开始在 C# 中使用 CodeContracts,我可能需要一些帮助。我有一个带有静态键列表的类,并且有一个名为 Remove() 的静态方法,用于从该列表中删除…
起订量正在触发代码合同?
给出这段代码: [ContractClass(typeof(DogContract))] public interface IDog { void Eat(object obj); } [ContractClassFor(typeof(IDog))] interna…
我应该对通用接口使用类型化代码契约吗?
我有一个数学库的通用接口,如下所示: [ContractClass(typeof(MathsDoubleContracts))] public interface IMaths { T SomeFunction(T n); } 这使我能…
模数 (%) 运算符上的 CodeContracts 失败?
我正在编写一个专门的随机生成器类,并希望使用 CodeContracts 确保其质量。典型的随机发生器方法接收上限“max”并返回低于该限制的正随机值。 publi…
使用代码契约将泛型设为枚举类型
几天前,我问了一个标题为如何将泛型限制为枚举类型?的问题。总结一下这个问题是下面的代码: class MyClass where T : enum // Not possible in C# …