簡體   English   中英

Check.Assert(),Check.Ensure()和Check.Require()有什么作用?

[英]What does Check.Assert(), Check.Ensure(), and Check.Require() do?

請告訴我這些功能的作用。

這些是用於在.NET中定義代碼協定的基於框架的,與語言無關的方法。 雖然某些語言(例如spec#和Delphi Prism)對代碼協定具有一流的語言支持,但這種基於框架的方法使它可用於所有.NET語言。 IronRuby,IronPython,F#,VB.NET等

Require()是對ENTRY的方法級檢查,sure()是對EXIT的方法級檢查,而Assert()是在調用任何點的檢查。 也就是說,在執行這些方法的任何時候,都會評估您傳遞給它們的條件。 如果不滿足該條件,則會發生錯誤。

我用Google搜索了您的標題,發現以下內容:

http://www.codeproject.com/KB/cs/designbycontract.aspx

基本上,它們是可以幫助您使用“按合同設計”方法編寫代碼的方法。

除了別人所說的以外,如果您運行更昂貴的Visual Studio版本,還可以在編譯期間檢查Contracts。 這樣,您可以證明例如程序中的參數永遠不會為空。 這也意味着該檢查是不必要的,C#編譯器可以對其進行優化。

如果您對質量有很高的要求並且代碼庫相對較小且緊湊,那么這些編譯時檢查將非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM