【发布时间】:2010-09-22 15:31:09
【问题描述】:
我正在寻找使用:
#define
和
#if
允许我在单元测试期间模拟可能不存在的硬件。 #define 语句的使用规则是什么?
即它的默认范围是什么?我可以更改指令的范围吗?
【问题讨论】:
标签: c# scope c-preprocessor preprocessor-directive
我正在寻找使用:
#define
和
#if
允许我在单元测试期间模拟可能不存在的硬件。 #define 语句的使用规则是什么?
即它的默认范围是什么?我可以更改指令的范围吗?
【问题讨论】:
标签: c# scope c-preprocessor preprocessor-directive
是的,正如 Chris 所说,它的范围是整个文件。您可以在文件中的任何位置使用定义的关键字。
即;
#define something
... some code ...
在任何方法、类体或命名空间中,您都可以像这样使用它;
#if something
... some conditional code ...
#else
... otherwise ...
#endif
【讨论】:
正如 Chris 所说,#define 的范围只是文件。 (值得注意的是,这与“类”不同——如果你有一个部分类型,它可能包含两个文件,一个定义了符号,另一个没有!
您还可以在项目范围内定义符号,但这是使用 project properties 或 compiler switch 完成的,而不是在源代码中指定。
【讨论】:
虽然你不能沿着 Mock 对象的路线走下去,ala Mock.Rhinos 吗?
【讨论】:
来自MSDN,它的作用域是文件
【讨论】: