基于const值强制C#编译器错误

时间:2008-10-29 22:10:32

标签: c# compiler-construction

我在C#类中定义了一个私有const int。如果这个int mod 3!= 0的值,我希望编译失败并出现错误。如何实现此目的?

4 个答案:

答案 0 :(得分:4)

Timothy Khouri几乎得到了它。它应该是这样的:

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

答案 1 :(得分:2)

虽然有一个#error预处理器指令用于生成编译时错误,但它没有办法基于const值的存在。它仅适用于无法分配值的编译器符号,如“DEBUG”。

答案 2 :(得分:1)

很抱歉,我在下面说的代码不起作用,但这样会:)

int pointless = 1 / (MY_CONST % 3);

这将起作用的原因是因为你将得到一个编译时间,“不能偏零”错误。你的“MY_CONST”字段必须是(一旦被3修改)不等于零的任何东西。

答案 3 :(得分:-1)

试试这个:

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