【发布时间】:2011-08-12 17:48:23
【问题描述】:
我真的很想在 Visual Studio 2010 中试用新的代码合同,但我不想为 Visual Studio 安装额外的扩展(因为我的代码与我的同事共享)。 现在,当面向 .NET 4.0 时,我可以使用新的 System.Diagnostics.Contracts 命名空间,但我还没有让它做任何事情。
例如,使用
static void Main(string[] args)
{
Greet(null);
Console.ReadLine();
}
private static void Greet(string name)
{
Contract.Requires(name != null);
Console.Out.WriteLine("Hello {0}", name);
}
程序编译并运行(显示“Hello”),没有任何警告。如果我尝试使用Contract.Requires<ArgumentNullException>(name != null),我会收到一条消息,告诉我必须使用重写器,而不管名称的值如何。
谷歌告诉我,当我安装 Code Contracts 高级版时,我可以获得任何魔法,但是如果我不安装,这个命名空间的目的是什么?除了开箱即用的复杂 cmets 之外,我可以将代码合同用于其他用途吗?
【问题讨论】:
标签: c# visual-studio-2010 code-contracts