Dot-Net

以程式方式檢測發布/調試模式(.NET)[重複]

  • March 17, 2009

可能重複:

如何確定 .NET 程序集是否使用 TRACE 或 DEBUG 標誌編譯

可能重複:

如何辨識 DLL 是 Debug 還是 Release 建構(在 .NET 中)

以程式方式檢查目前程序集是在調試還是發布模式下編譯的最簡單方法是什麼?

bool isDebugMode = false;
#if DEBUG
isDebugMode = true;
#endif

如果你想在調試和發布版本之間程式不同的行為,你應該這樣做:

#if DEBUG
  int[] data = new int[] {1, 2, 3, 4};
#else
  int[] data = GetInputData();
#endif
  int sum = data[0];
  for (int i= 1; i < data.Length; i++)
  {
    sum += data[i];
  }

或者,如果您想對函式的調試版本進行某些檢查,您可以這樣做:

public int Sum(int[] data)
{
  Debug.Assert(data.Length > 0);
  int sum = data[0];
  for (int i= 1; i < data.Length; i++)
  {
    sum += data[i];
  }
  return sum;
}

Debug.Assert不會包含在發布版本中。

引用自:https://stackoverflow.com/questions/654450