VisualBasic.NET或C#支持條件編譯嗎?和內聯函數(宏)?VB.NET或C#中的內聯函數和條件編譯?
當我談條件編譯,我的意思是像C/C++,你這樣做:
#ifdef DEBUG
my_var = call_some_debug_function();
#else
my_var = call_some_final_function();
#endif
而在編譯後的代碼,只有在調用call_some_debug_function
或call_some_final_function
。
當我談到內聯函數,我的意思是像C/C++宏:
#define sum(a, b) a + b
...
total = sum(a, b)
,所得編譯代碼是:
total = a + b
是這些建築由任何這些支持。 .NET語言?
這裏的答案解釋*爲什麼* C#不支持宏的問題:http://stackoverflow.com/questions/1369725/why-arent -chere-macros-in-c –
你可以對C和C++中的宏造成更大的破壞,C#肯定不允許定義像這樣的錯誤的函數風格的宏。但內聯優化並沒有根本的不同,最終導致機器代碼是一樣的。 –