私は次のインターフェースを持っています:
[ContractClass(typeof(MyObjectContract))]
public interface IMyObject
{
int CountOfItems { get; }
}
次の契約:
[ContractClassFor(typeof(IMyObject))]
public abstract class MyObjectContract
{
int IMyObject.CountOfItems
{
get
{
Contract.Ensures(Contract.Result<int>() > 0);
return 1;
}
}
}
次の実装:
public class MyObject : IMyObject
{
private IEnumerable someEnumerable ....
public int CountOfItems
{
get
{
return this.someEnumerable.Count();
}
}
}
今、私は警告を受けていますensures unproven: Contract.Result<int>() > 0
count が 0 より大きいことをどのように証明すればよいですか? ゲッターで例外をスローしたくないのですが、何が欠けていますか?
ありがとう