1

我正在通过 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++ 中编译的源文件。

4

1 回答 1

1

Visual Studio 不会抱怨相同的代码。我认为您在 Mono 中发现了一个错误。

于 2015-06-26T18:19:56.223 回答