我有這樣的代碼:CodeContract認爲分配readonly字段可以爲空
public class CodeContractSample
{
private readonly List<object> _items = new List<object>();
public IEnumerable<object> Query()
{
Contract.Ensures(Contract.Result<IEnumerable<object>>() != null);
//if (_items == null) throw new Exception();
return _items;
}
}
CodeContracts給出了這樣的警告:
CodeContracts:確保未經證實!Contract.Result>()= NULL
如果我取消註釋中間行,它會停止抱怨。但爲什麼它開始抱怨? _items不應該是空的..?
不錯,這在我的單元測試中有一些斷言後也很有用...... :) – Allrameest 2011-01-31 15:16:40