2010-11-06 40 views

回答

1

C# Preprocessor Directives (MSDN)

然而,C#编译器没有像C单独预处理,这样的事情可能比你所习惯的略有不同。 C#团队写了一篇关于why C# doesn't support #define macros的博客文章,可能会有趣的阅读。

在C#中,#define仅用于定义可以使用其他预处理器指令#if和#endif进行测试的符号。因此,不能像C中那样使用#define来定义一个常量值。要做到这一点,你应该使用常量或枚举。一个常量必须在类内部,但枚举可以在类内部或外部。

1

是的,C#有一个preprocessor。与C++相比,它有一定的局限性。

存在以下指令。

#if 
#else 
#elif 
#endif 
#define 
#undef 
#warning 
#error 
#line 
#region 
#endregion 
#pragma 
#pragma warning 
#pragma checksum 
3

C#有一个粗糙的预处理器,它允许您定义符号并测试它们的存在。

除非你在C编程,对于Knuth的爱,请不要使用类似C的预处理器。

+0

+1“请不要使用类似C的预处理器” – Dexter 2010-11-06 06:53:08

+0

+1“为了Knuth的爱” – 2010-11-06 06:54:40