4

请告诉我这些功能是做什么的。

4

3 回答 3

5

这些是用于在 .NET 中定义代码协定的基于框架、与语言无关的方法。虽然 spec# 和 Delphi Prism 等一些语言对代码契约具有一流的语言支持,但这种基于框架的方法使其可用于所有 .NET 语言。IronRuby、IronPython、F#、VB.NET 等。

Require() 是对 ENTRY 的方法级检查, Ensure() 是对 EXIT 的方法级检查,而 Assert() 是在任何时候调用它的检查。也就是说,在这些方法应用的任何执行点,您传递给它们的条件都将被评估。如果不满足该条件,则会发生错误。

于 2010-08-12T16:28:17.713 回答
2

我用谷歌搜索了你的标题,发现以下内容:

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

基本上,它们是帮助您使用“按合同设计”方法编写代码的方法。

于 2010-08-12T16:22:07.770 回答
0

除了其他人所说的,如果您运行更昂贵的 Visual Studio 版本,还可以在编译时检查合同。这样,您可以证明,例如,程序中的参数永远不会为空。这也意味着检查将是不必要的,C# 编译器可以优化它。

如果您对质量有非常高的要求并且代码库相对较小且紧凑,这些编译时检查将非常有用。

于 2010-08-12T19:57:06.803 回答