私がこれを持っているとしましょう:
[Pure]
public static TimeSpan Seconds(this int i)
{
Contract.Ensures(Contract.Result<TimeSpan>() == TimeSpan.FromSeconds(i));
return TimeSpan.FromSeconds(i);
}
そんなに厳密に契約結果を保証するのは正しいですか、それとも不必要ですか?
そしてこの場合は?
[Pure]
public static T IfTrue<T>(this bool b, T value)
{
Contract.Ensures(Contract.Result<T>().Equals(b ? value : default(T)));
return b ? value : default(T);
}
私の質問は次のとおりです。
- そのような正確な契約保証を示すことは正しいですか?
- 私はそのような厳格な契約保証を行う義務がありますか? また、その理由は何ですか?
- 私の契約保険が(多くの場合、私のアプリケーションで)ステートメントを繰り返しても大丈夫
return
ですか?