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