在 C++ 中,可以使用以下表达式:
#define IDENTIFIER NAME
例如。#define MY_NAME "Gideon"
这在 C# 中是否同样可能?
在 C++ 中,可以使用以下表达式:
#define IDENTIFIER NAME
例如。#define MY_NAME "Gideon"
这在 C# 中是否同样可能?
No.#define
只能用于定义要测试的标志#if
(并且只能在文件的开头)。
请改用常量字符串:
const string MY_NAME = "Gideon";
这些是完全不同的事情。在C++
它基本上用表达式替换字符串 MY_NAME
用 分配给它"Gideon"
。
同样的情况发生在C#
, 在恒定表达式的情况下,但是C++
您可以定义完整的宏(函数)MY_NAME
以使它们运行,这是不可能的C#
我并不是说你应该这样做,或者它会按你期望的那样工作,但是没有什么能阻止你尝试在你的代码上使用 C 预处理器(例如 GNU cpp)。