一千萬個為什麽

搜索

Contract.Exists如何增加價值?


我剛剛開始了解VS2010標配的代碼契約庫。我正在遇到的一件事是一些合同條款的真正含義。

例如,這兩個陳述有何不同?

Contract.Requires(!mycollection.Any(a => a.ID == newID));
Contract.Requires(!Contract.Exists(mycollection, a => a.ID == newID));

換句話說,Contract.Exists在實際應用中做了什麽,對於使用我的函數的開發人員,還是對於靜態代碼分析系統?

最佳答案

由於其聲明性質,使用 Contract.Exists 的版本是首選。另一個優點是框架知道這個合同,它有更好的機會被靜態分析“抓住”。

轉載註明原文: Contract.Exists如何增加價值?

猜你喜歡