通常,當我要檢查,比方說,一個構造函數的參數進行初始化,我不喜歡這樣寫道:使用契約驗證傳遞的參數?
public MyCtor(MyObj obj) {
if(obj == null)
throw new ArgumentNullException("obj");
}
不過最近我stumpled在這個不錯的功能,從System.Diagnostics程序命名空間:
Contract.Requires<ArgumentNullException>(condition);
這是否有同樣的效果?使用合同驗證參數時是否有任何缺點?
合同允許您使用靜態代碼合同分析工具,它允許您在運行咖啡之前發現問題。 – Aron 2014-09-04 12:04:15