【发布时间】:2012-10-04 06:30:07
【问题描述】:
在 C++ 中,可以使用以下表达式:
#define IDENTIFIER NAME
例如。 #define MY_NAME "Gideon"
这在 C# 中是否同样可行?
【问题讨论】:
标签: c# c-preprocessor
在 C++ 中,可以使用以下表达式:
#define IDENTIFIER NAME
例如。 #define MY_NAME "Gideon"
这在 C# 中是否同样可行?
【问题讨论】:
标签: c# c-preprocessor
没有。 #define 只能用于定义要使用 #if 测试的标志(并且只能在文件开头)。
改用常量字符串:
const string MY_NAME = "Gideon";
【讨论】:
那是完全不同的东西。在C++ 中,它基本上替换 字符串MY_NAME 与分配给它的表达式 "Gideon"。
同样的情况发生在C# 中,在静态表达式的情况下,但在C++ 你可以定义完整的宏(函数)到MY_NAME 以使它们运行,即在C# 中是不可能的
【讨论】:
我并不是说你应该这样做,或者它会按你期望的那样工作,但是没有什么能阻止你尝试在你的代码上使用 C 预处理器(例如 GNU cpp)。
【讨论】: