有没有办法在运行时设置#define的值?

Ali*_*söz 2 c# c-preprocessor

我想知道是否有办法在运行时设置#define的值.

我假设在下面的代码中有针对Oracle特定和特定于Sql Server的查询.

#define oracle

// ...    

#if oracle
// some code
#else
// some different code.
#endif
Run Code Online (Sandbox Code Playgroud)

Ana*_*tts 14

绝对不是,#define在编译器甚至看到它之前由预处理器编译出来 - 所以令牌'oracle'甚至不在你的代码中,只是'1'或'0'.将#define更改为全局变量或(更好)返回正确值的函数.