代码合同确保ReSharper ExternalAnnotations

时间:2013-06-23 03:51:30

标签: c# resharper code-contracts

有谁知道如何在ReSharper ExternalAnnotations中添加代码合同保证?它不存在于最后一个v7.1.3中,也不存在于最新的v8 EAP中,也不存在于任何浮动的自定义xmls中。

具体来说,它应该检测方法是否返回null:Contract.Ensures(Contract.Result<T>() != null);

1 个答案:

答案 0 :(得分:4)

如果您试图简单地安抚分析引擎,最简单的方法是在方法声明前面使用[NotNull]。您在上面发布链接的合同注释是一种更强大的机制,用于定义输入参数和返回值之间的关系,例如[ContactAnnotation("null => null")]

但是,显式分析Contract.Ensures语句是一个完全不同的命题,因为不能通过[ContractAnnotation]或任何其他ReSharper注释属性为此语句定义自动分析。