私はC#でMicrosoftのコード契約拡張を使用しています。私はnullを返しますオーバーライドされたToStringメソッドの実装を持つクラスを書くとき、それは正確に問題を識別します。コードコントラクトはToStringオーバーライドがnullを返さないことをどのように知っていますか?
私は、Microsoftが内部でコードコントラクトを使用しているため、このだったと仮定し、彼らはObject.ToString
にContract.Ensures
コールを追加しました。しかし、私がObject.ToString
source codeを見ると、私は契約を見ません(私は他の契約を見ていますが、私が探しているものはありません)。 ToStringがnullを返すべきではないとCode Contractsが判断する方法は?
さらに詳しい情報を提供する:コードコントラクトは公式のアセンブリに含まれていないため、referencesource.microsoft.comには表示されません。コード契約チームは、すべてのコード契約を自分自身で定義し、実際のソースではなく契約のみを含む個別の契約参照アセンブリに提供します。 – cremor
@remoありがとう!ちょうど、私はReferenceSource(例えば[Object.cs](http://referencesource.microsoft.com/#mscorlib/system/object.cs,180))で多くの契約を見ていますが、誰がそれを書いたかに応じて、.NETコアまたはコード契約で指定することができます。 – Will