我开始使用代码合同,虽然Contract.Requires非常直观,但是我不太明白Ensures实际上是做什么的。
我尝试创建一个简单的方法:
static void Main()
{
DoSomething();
}
private static void DoSomething()
{
Contract.Ensures(false, "wrong");
Console.WriteLine("Something");
}
我从未看到过“wrong”这个消息,它也不会抛出异常或其他任何东西。
那么它实际上是做什么的?
ContractException
,错误信息是"后置条件失败:false 错误"。所以看起来它工作得很好。 - kyrylomyrEnvironment.Exit
的内容,您可以使用Contract.Ensures(false)
进行标记。静态检查器随后可以使用此信息。 - porges