预处理指令线等预处理器指令行可以像C中一样用在C#中吗?
#define
#include
#ifdef and #endif
#if and #elif
可以C中使用的,但不是在C#。
是否有替代这些?
主要是#define
。
预处理指令线等预处理器指令行可以像C中一样用在C#中吗?
#define
#include
#ifdef and #endif
#if and #elif
可以C中使用的,但不是在C#。
是否有替代这些?
主要是#define
。
C# Preprocessor Directives (MSDN)
然而,C#编译器没有像C单独预处理,这样的事情可能比你所习惯的略有不同。 C#团队写了一篇关于why C# doesn't support #define macros的博客文章,可能会有趣的阅读。
在C#中,#define仅用于定义可以使用其他预处理器指令#if和#endif进行测试的符号。因此,不能像C中那样使用#define来定义一个常量值。要做到这一点,你应该使用常量或枚举。一个常量必须在类内部,但枚举可以在类内部或外部。
是的,C#有一个preprocessor。与C++相比,它有一定的局限性。
存在以下指令。
#if
#else
#elif
#endif
#define
#undef
#warning
#error
#line
#region
#endregion
#pragma
#pragma warning
#pragma checksum
C#有一个粗糙的预处理器,它允许您定义符号并测试它们的存在。
除非你在C编程,对于Knuth的爱,请不要使用类似C的预处理器。
+1“请不要使用类似C的预处理器” – Dexter 2010-11-06 06:53:08
+1“为了Knuth的爱” – 2010-11-06 06:54:40
谷歌说什么?因为“C##define”的* first hit *是*非常相关的* MSDN参考页面... – 2010-11-06 06:33:19