我有这个简单的代码:
public ArrayStack(int capacity)
{
Contract.Requires(capacity >= 0);
Contract.Ensures(_items != null);
Contract.Ensures(_items.Length == capacity);
_items = new T[capacity];
_top = -1;
}
我预计一旦我键入以下内容,我会收到一个编译时警告,但我只会从合约中得到一个运行时异常。
static void Main(string[] args)
{
int i = -1;
ArrayStack<string> stack = new ArrayStack<string>(i);
}
有任何想法吗?
已编辑:我的代码合同设置图片