请告诉我这些功能是做什么的。
问问题
3838 次
3 回答
5
这些是用于在 .NET 中定义代码协定的基于框架、与语言无关的方法。虽然 spec# 和 Delphi Prism 等一些语言对代码契约具有一流的语言支持,但这种基于框架的方法使其可用于所有 .NET 语言。IronRuby、IronPython、F#、VB.NET 等。
Require() 是对 ENTRY 的方法级检查, Ensure() 是对 EXIT 的方法级检查,而 Assert() 是在任何时候调用它的检查。也就是说,在这些方法应用的任何执行点,您传递给它们的条件都将被评估。如果不满足该条件,则会发生错误。
于 2010-08-12T16:28:17.713 回答
2
于 2010-08-12T16:22:07.770 回答
0
除了其他人所说的,如果您运行更昂贵的 Visual Studio 版本,还可以在编译时检查合同。这样,您可以证明,例如,程序中的参数永远不会为空。这也意味着检查将是不必要的,C# 编译器可以优化它。
如果您对质量有非常高的要求并且代码库相对较小且紧凑,这些编译时检查将非常有用。
于 2010-08-12T19:57:06.803 回答