8

私は使用しようとしています:

#define

#if

単体テスト中に存在しない可能性のあるハードウェアをシミュレートできるようにします。#defineステートメントを使用するためのルールは何ですか?

つまり、そのデフォルトのスコープは何ですか? ディレクティブのスコープを変更できますか?

4

4 に答える 4

14

Chris が言ったように、#define のスコープはファイルだけです。(これは「クラス」と同じではないことに注意してください。部分型の場合、2 つのファイルで構成されている可能性があり、そのうちの 1 つはシンボルが定義されており、もう 1 つは定義されていません!

プロジェクト全体でシンボルを定義することもできますが、これはソース コードで指定するのではなく、プロジェクト プロパティまたはコンパイラ スイッチで行います。

于 2008-11-17T09:16:23.927 に答える
3

MSDNから、そのスコープはファイルです

于 2008-11-17T08:49:29.783 に答える
1

はい、クリスが述べたように、そのスコープはファイル全体です。defined キーワードは、ファイル内のどこでも使用できます。

すなわち;

#define something
... some code ...

そして、任意のメソッド、クラス本体、または名前空間で、次のように使用できます。

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

Mock オブジェクトのルートをたどることはできませんでしたが、Mock.Rhinosですか?

于 2008-11-17T08:51:44.210 に答える