代码合约 - 不错,处于边缘,但还没有准备好迎接黄金时段?
我对 .NET 4 中引入的代码契约着迷(尽管是在 DevLabs 的帮助下)。但一张精美的印刷品让我冷静下来。它是这么说的: 目前,除了不使用后置条件之外,…
代码契约与不使用它的框架一起
我有这样的代码: return session.Query<Payment>() .OrderBy(payment => payment.Created) .Skip((page - 1)*pageSize) .Take(pageSize) .ToAr…
.Net 3.5 使用代码契约实现 String.IsNullOrWhitespace
我正在尝试在我的 .Net 3.5 (C#) 项目中使用合同。我发现我在哪里写过类似 if (string.IsNullOrEmpty(s) || string.IsNullOrEmpty(s.Trim())) throw n…
代码合约失败示例 Graph.Remove(Edge e)
这是一个简单的图形操作方法,我用代码契约来装饰它。 确保声明无法证明,但我不明白为什么!我相信它声称在调用 Remove() 后,要么该边不再在边列表…
CodeContract 认为分配的只读字段可以为 null
我有这个代码: public class CodeContractSample { private readonly List<object> _items = new List<object>() public IEnumerable<obje…
代码契约 - 假设与要求
这两种说法有什么区别? Contract.Requires(string.IsNullOrWhiteSpace(userName)) Contract.Assume(string.IsNullOrWhiteSpace(userName)) …
C# 中的代码契约和 null 检查
在我的代码中,我经常这样做: myfunction (parameter p) { if(p == null) return } 我如何用代码合约替换它? 我有兴趣找出是否已传入 null 并通过静…
合同确保 GUID 未经验证
我有一个未经证实的保证: !ReferenceEquals(Contract.Result(), null) 该合同位于一个接口上,我无法控制 我的实现,就像这样, public Guid Blah() …
为什么这个基于字符串的 Contract.Ensure 调用未经验证?
我的 .Net 4 应用程序中有以下代码: static void Main(string[] args) { Func() } static string S = "1" static void Func() { Contract.Ensures(S …
代码契约:要求 IEnumerable 非空
我有以下代码: public static IEnumerable<long> GetAllCombinations(IEnumerable<long> elements) { Contract.Requires(elements != null) …
方法是否应该与它们调用的方法具有相同的前提条件?
我最近遇到了一些场景,其中对代码的微小更改导致跨多个类的先决条件发生变化,我想知道契约设计是否应该是这样。 public Goal getNextGoal() { retur…
代码合约尝试获取构建错误而不是警告
我试图让 VS2010 Ultimate 与代码合同生成错误而不是警告。 我有这个简单的测试程序: using System.Diagnostics.Contracts namespace MyError { publ…