11

C++ では、http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspxがあります。

そのため、デバッグ時のみ、または特定のプラットフォーム (PowerPC、MIPS、Power Macintosh など。現在はサポートされていませんが、非常に良い例です) のみで実行されるコードを記述できます。32 ビット システムと 64 ビット システムの間でそのように切り替えることもできます (もちろん、これは、それぞれが独自のプロセッサ アーキテクチャを持つ 2 つの異なるビルドをリリースする場合にのみ役立ちます。C# ではめったに必要ではありませんが、それでもあります)。

私の質問は、C# にそのようなものが存在するかどうかです。マクロがないことはわかっていますが、シンボルはあります(同じ#defineキーワードであっても。少なくとも私にとっては、それが存在する必要があることは理にかなっています.

4

3 に答える 3

8

.NET には、前処理ディレクティブがあります。デバッグ時にのみコードのブロックを含めるには、次のようにします。

#define Debug      // Debugging on

class PurchaseTransaction
{
   void Commit() {
      #if Debug
         CheckConsistency();
      #else
         /* Do something else
      #endif
   }
}

Visual Studio の [プロジェクト設定] に移動する場合は、[ビルド] タブを確認してください。そこで、選択した構成のデバッグおよびトレース定数を定義できます (デバッグ ビルドではデフォルトでチェックされています)。追加の条件付きコンパイル シンボルを定義することもできます。

ここに画像の説明を入力

于 2012-10-28T07:23:03.417 に答える
5

MSDN ドキュメントには、定義済みの名前は記載されていません。すべて #define および /define から取得する必要があるように思われます。

ここでIFをチェック

于 2012-10-28T07:24:21.127 に答える