我正在通过 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
这个例子并不是完全人为的,它试图通过这里描述的方法来获得一个在 C# 和 C++ 中编译的源文件。