繁体   English   中英

代码契约在 Visual Studio 2019 中不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM