c# - 代码合同在 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
就会定义。
推荐阅读
- google-maps - 使用 URL 在谷歌地图上显示多个地标
- c# - 带有数据源的asp日历在表格上不存在的日期上没有区别
- php - 在 PDO 准备语句中使用 LAST_INSERT_ID 插入多个表
- dart - Flutter中解析的json中的多个对象
- angular - 我想从我的 url 中删除 pages/ 角度 5
- react-native - 当我运行将产品添加到购物车并打开模式时反应本机重定向初始场景
- html - rmarkdown 文件 (.Rmd) 的 html 在浏览器中未正确显示
- javascript - 如何分离功能
- c++ - 测试 double 是否为整数
- c# - 在 Unity 中导致相同实例的两种不同类型