我有这个代码:
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)
- 明确:CodeContracts:确保未经证实:
this.Count == 0
- 包含: CodeContracts:确保未经证实:
!Contract.Result<bool>() || this.Count > 0
- CopyTo:CodeContracts:需要未经证实的:
arrayIndex + this.Count <= array.Length
我该如何解决这些问题?有什么办法可以压制这些吗?