我通过MonoDevelop 4.0.1(Unity的当前版本)在C#中工作, 并且看似古怪的语言。
这是我的整个.cs文件:
#if false
#define foo
#endif
class myClass {
int member;
}
#if false
#error this error does not trigger
#undef foo
// "cannot define or undefine preprocessor symbols after first token in file
#endif
我理解在声明令牌后不#undef
预处理器符号的规则,但在这种情况下我不 #undef
因为#undef
位于#if false
内。
这个例子并不完全是设计的,它试图通过here描述的方法在C#和C ++中编译单个源文件。
答案 0 :(得分:1)
Visual Studio不会抱怨相同的代码。我想你在Mono中发现了一个错误。