2010-11-06 39 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