私はこのコードを持っています:
public class MyCollection : ICollection<string>
{
private readonly ICollection<string> _inner = new Collection<string>();
public void Add(string item)
{
_inner.Add(item);
} // <-- CodeContracts: ensures unproven: this.Count >= Contract.OldValue(this.Count)
public void Clear()
{
_inner.Clear();
} // <-- CodeContracts: ensures unproven: this.Count == 0
public bool Contains(string item)
{
return _inner.Contains(item); // <-- CodeContracts: ensures unproven: !Contract.Result<bool>() || this.Count > 0
}
public void CopyTo(string[] array, int arrayIndex)
{
_inner.CopyTo(array, arrayIndex); // <-- CodeContracts: requires unproven: arrayIndex + this.Count <= array.Length
}
public IEnumerator<string> GetEnumerator()
{
return _inner.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public bool Remove(string item)
{
return _inner.Remove(item);
}
public int Count
{
get { return _inner.Count; }
}
public bool IsReadOnly
{
get { return _inner.IsReadOnly; }
}
}
次の警告が表示されます。
- 追加: CodeContracts: 証明されていないことを保証します:
this.Count >= Contract.OldValue(this.Count)
- Clear: CodeContracts: 証明されていないことを保証します:
this.Count == 0
- 内容: CodeContracts: 証明されていないことを保証:
!Contract.Result<bool>() || this.Count > 0
- CopyTo: CodeContracts: 証明されていないものが必要:
arrayIndex + this.Count <= array.Length
これらを修正するにはどうすればよいですか? これらを抑制する方法はありますか?