c#预处理器指令范围

TK.*_*TK. 8 c# scope c-preprocessor preprocessor-directive

我想用:

#define
Run Code Online (Sandbox Code Playgroud)

#if
Run Code Online (Sandbox Code Playgroud)

允许我在单元测试期间模拟可能缺少的硬件.使用这些#define陈述有哪些规则?

即它的默认范围是什么?我可以改变指令的范围吗?

Jon*_*eet 14

正如克里斯所说,#define的范围只是文件.(值得注意的是,这与"类"不同 - 如果你有一个部分类型,它可能包含两个文件,其中一个有符号定义,其中一个没有!

您还可以在项目范围内定义符号,但这是使用项目属性编译器开关完成的,而不是在源代码中指定.