基于常量值强制C#编译器出错

本文关键字:编译器 出错 于常量 常量 | 更新日期: 2023-09-27 17:47:46

我在C#类中定义了一个私有常量int。如果此int mod的值为3!=0、我该如何做到这一点?

基于常量值强制C#编译器出错

Timothy Khouri差点拿到。应该是这样的:

int compilerError = 1 / (MY_CONST % 3 == 0 ? 1 : 0);

尽管存在用于生成编译时错误的#error预处理器指令,但它不可能基于常量值的存在。它只适用于编译器符号,如"DEBUG",不能为其赋值。

对不起,我下面说的代码不起作用,但这会:)

int pointless = 1 / (MY_CONST % 3);

这样做之所以有效,是因为在编译时会出现"不能为零设计"的错误。您的"MY_CONST"字段必须是(一旦被3修改)不等于零的任何值。

试试这个:

if (MY_CONST % 3 != 0) { int compilerError = 1 / 0; }