預處理指令線等預處理器指令行可以像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