8

我正在寻找使用:

#define

#if

允许我在单元测试期间模拟可能不存在的硬件。使用#define语句的规则是什么?

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

4

4 回答 4

14

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

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

于 2008-11-17T09:16:23.927 回答
3

MSDN,它的范围是文件

于 2008-11-17T08:49:29.783 回答
1

虽然你不能沿着 Mock objects 的路线走,ala Mock.Rhinos吗?

于 2008-11-17T08:51:44.210 回答
1

是的,正如 Chris 提到的,它的范围是整个文件。您可以在文件中的任何位置使用定义的关键字。

IE;

#define something
... some code ...

在任何方法、类体或命名空间中,您都可以像这样使用它;

#if something
  ... some conditional code ...
#else
  ... otherwise ...
#endif
于 2008-11-17T09:16:29.667 回答