[英]Code contract does not work in Visual Studio 2019
我正在学习代码合同,但它不会给我带来任何错误或任何东西。 我正在使用 Visual Studio 2019。
这是代码:
using System.Diagnostics.Contracts;
namespace ConsoleApp1
{
class Calculations
{
public static void Division(string name)
{
Contract.Requires(!string.IsNullOrEmpty(name));
}
}
class Program
{
static void Main(string[] args)
{
string s = null;
Calculations.Division(s);
}
}
}
这怎么不给我扔东西? 当我打电话给Division
时,我几乎违反了合同。
很可能是因为文档中的以下行
合约类中的大多数方法都是有条件地编译的; 也就是说,只有当您使用 #define 指令定义特殊符号 CONTRACTS_FULL 时,编译器才会发出对这些方法的调用。 CONTRACTS_FULL 允许您在代码中编写合同而不使用 #ifdef 指令; 你可以生产不同的版本,有些有合同,有些没有。
文档中还提到,一旦您设置并使用 Code.Contracts UI,就会定义CONTRACTS_FULL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.