簡體   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