3

ReSharper ExternalAnnotations に Code Contracts Guarantees を追加する方法を知っている人はいますか? 最後の v7.1.3 にも、最新の v8 EAP にも、どこにでもあるカスタム xml にもありません。

具体的には、メソッドがnull を返さないかどうかを検出する必要があります。Contract.Ensures(Contract.Result<T>() != null);

4

1 に答える 1

4

単純に分析エンジンをなだめようとしている場合、最も簡単に使用できるのは[NotNull]メソッド宣言の前です。上記のリンクを投稿したコントラクト アノテーションは、入力パラメーターと戻り値の間の関係を定義するためのより強力なメカニズムです[ContactAnnotation("null => null")]

ただし、Contract.Ensuresステートメントを明示的に分析することは、まったく別の命題です。これは[ContractAnnotation]、または他の ReSharper アノテーション属性を介してこのステートメントに対して自動分析を定義することはできないためです。

于 2013-06-24T20:40:27.117 に答える