私は使用しようとしています:
#define
と
#if
単体テスト中に存在しない可能性のあるハードウェアをシミュレートできるようにします。#define
ステートメントを使用するためのルールは何ですか?
つまり、そのデフォルトのスコープは何ですか? ディレクティブのスコープを変更できますか?
私は使用しようとしています:
#define
と
#if
単体テスト中に存在しない可能性のあるハードウェアをシミュレートできるようにします。#define
ステートメントを使用するためのルールは何ですか?
つまり、そのデフォルトのスコープは何ですか? ディレクティブのスコープを変更できますか?
Chris が言ったように、#define のスコープはファイルだけです。(これは「クラス」と同じではないことに注意してください。部分型の場合、2 つのファイルで構成されている可能性があり、そのうちの 1 つはシンボルが定義されており、もう 1 つは定義されていません!
プロジェクト全体でシンボルを定義することもできますが、これはソース コードで指定するのではなく、プロジェクト プロパティまたはコンパイラ スイッチで行います。
MSDNから、そのスコープはファイルです
はい、クリスが述べたように、そのスコープはファイル全体です。defined キーワードは、ファイル内のどこでも使用できます。
すなわち;
#define something
... some code ...
そして、任意のメソッド、クラス本体、または名前空間で、次のように使用できます。
#if something
... some conditional code ...
#else
... otherwise ...
#endif
Mock オブジェクトのルートをたどることはできませんでしたが、Mock.Rhinosですか?