4
A
回答
5
這些是基於框架的,與.NET語言無關的定義代碼合同的方法。雖然一些語言如spec#和Delphi Prism對代碼合約擁有一流的語言支持,但這種基於框架的方法使其可用於所有.NET語言。 IronRuby,IronPython,F#,VB.NET等。
Require()是對ENTRY的方法級別檢查,Ensure()是對EXIT的方法級別檢查,Assert()叫做。也就是說,在這些方法適用的任何一點上,都會評估你傳遞給他們的條件。如果不符合該條件,則會發生錯誤。
2
0
除了別人說的話,如果運行更昂貴的Visual Studio版本,也可以在編譯期間檢查合同。這樣你可以證明你的程序中一個參數不會爲空。這也意味着檢查將是不必要的,C#編譯器可以優化它。
如果您對質量要求非常高,且代碼相對較小且緊密,那麼這些編譯時檢查可能非常有用。
相關問題
- 1. 什麼是0xaa和0x55在做什麼?
- 2. 什麼「?」做?什麼是__FILE__?
- 3. 什麼是setDetailItem:做什麼?
- 4. WPF能做什麼和不做什麼?
- 5. $ /和$ \做什麼?
- 6. 位和0x3FF是做什麼的?
- 7. CF_EXTERN_C_BEGIN,CF_EXTERN_C_END和CF_EXPORT是做什麼的?
- 8. Clojure.Main.exe和Clojure.Compile.exe是做什麼用的?
- 9. 這是什麼HTML和JS做的?
- 10. ContextLoaderListener和RequestContextListener是做什麼的?
- 11. '&='和'=&'運算符是做什麼的?
- 12. 更改RACK_ENV和RAILS_ENV是做什麼的?
- 13. setUseWideViewPort()和setLoadWithOverviewMode()是做什麼的?
- 14. 是什麼[popViewControllerAnimated];做?
- 15. 什麼是random.random做
- 16. 什麼是「javascript :;」做?
- 17. 什麼是「GCMRegsistrar.register」做
- 18. page.driver.reset是什麼!做?
- 19. 這是做什麼
- 20. 什麼是簡單的JavaScript做什麼
- 21. $ {1}和$ {*}做什麼?
- 22. Javascript做什麼(| =,&=和〜)?
- 23. WinJS.strictProcessing()是做什麼的?
- 24. Rollapply:by.column是做什麼的?
- 25. 'printf -v'是做什麼的?
- 26. EventEmitter.call()是做什麼的?
- 27. 這是做什麼用的?
- 28. WorkflowApplicationInstance.Abandon()是做什麼的?
- 29. 'set - $ REPLY'是做什麼的?
- 30. wxPuts是做什麼的?
你們爲什麼向他大喊大叫? '; P' – jjnguy 2010-08-12 16:20:37
@Justin:你沒有趣味:p – 2010-08-12 16:22:13
@Barry,演得很好。 – jjnguy 2010-08-12 16:22:26