CodeContracts 中的前提条件和后置条件
如果我写 [Pure] static string s10 {get;set;} static void Main(string[] args) { Contract.Ensures(s10.Length <= 10); //Contract fails s10 = ";…
确保的 CodeContract 问题
我得到以下代码: protected virtual string FormatException(Exception exception, int intendation) { Contract.Requires(intendation >= 0); Contr…
代码契约是否未能发现 Nullable.HasValue 和 null 之间的明显关系?
我正在尝试将代码契约应用于我的代码,但遇到了一个令人困惑的问题。 这段代码未能满足合同要求,但除非我真的很厚,否则我希望它能够轻松分析 id 在…
说合约静态检查器扩展方法不允许为空?
Contract.Requires(completeURL.IsUri()); // Error: Contract.Requires(completeURL != null) 我可以在没有 Contract.Assume() 的情况下执行此操作…
为什么 CodeContracts 警告我“需要未经验证:索引 <” @this.Count”即使我已经检查过计数?
我的代码看起来像这样: public class Foo : ObservableCollection { private T bar; public Foo(IEnumerable items) : base(items.ToList()) { Contr…
一份合同还是几份合同?
有多少合同? Contract.Requires(name.NotEmpty() && identifier.NotEmpty()); 或者 Contract.Requires(name.NotEmpty()); Contract.Requires(identif…
带有非空保护子句的自动实现属性?
我确实同意 Mark Seeman 的观点,即自动属性有些邪恶,因为它们破坏了封装。不过我确实喜欢它们带来的简洁语法、可读性和便利性。 我引用: public st…
有哪些关键字/工具可以帮助编译器优化
我们经常被告知这样的话, 如果您调用的方法的返回值不变,请将其从循环中取出。 例如,在编写如下代码时: for(int i=0; i < Instance.ExpensiveNonC…
使用 MS Code 合约时 VS2010 调试器窗口会丢失类型解析
自从开始使用代码契约(.NET 4.0、VS2010 Ultimate 和 Premium)以来,我们在调试器窗口中遇到了一个奇怪的问题。 我有一个简单的解决方案,其中包含…
Random.Next 代码合约是否不正确?
我安装了一个插件(Microsoft 的代码契约编辑器扩展),它显示 .NET 的所有代码契约。 当我查看 Random.Next 的合约时,它说 ensures result <= maxVa…
使用代码契约,为什么 ccrewrite 需要访问每个运行时依赖项?
我正在尝试使用代码契约,但遇到了一个阻碍我的问题。将“合同引用程序集”设置为“生成”时,ccrewrite 在尝试访问由直接引用的程序集间接引用的程序…
调用重载方法时,代码合约会发出有关参数的警告
我有这段代码(非常精简): [ContractClass(typeof (QueryServiceContract))] public interface IQueryService { IEnumerable ExecuteQuery(IMultiIn…
通过通用助手编写合约
在下面的示例中是否需要使用 [ContractAbbreviator] 属性。如果是,那么即使没有它它也能工作。任何人都可以验证此代码的正确性吗? /** helper usage…
为什么代码合同显示“合同格式错误”。分配后发现要求”在带有 params keywork 的方法中?
我已经解决这个错误几个小时了,我似乎无法理解为什么会发生这种情况。考虑以下代码: using System; using System.Diagnostics.Contracts; using Sys…