回答編集履歴

1

リファレンスソースの確認結果を追記

2021/05/20 10:12

投稿

dodox86
dodox86

スコア9256

test CHANGED
@@ -7,3 +7,19 @@
7
7
  C> csc.exe -define:DEBUG main.cs
8
8
 
9
9
  ```
10
+
11
+
12
+
13
+ ---
14
+
15
+ **追記しました。**
16
+
17
+
18
+
19
+ 私自身`System.Diagnostics.Debug`の`Assert`や`Write`を多用し、Visual StudioでのDEBUG/RELEASEビルドで切り替えていたのですが、内部でどう切り替えているのかまではそれほど気にしたことが無かったので確認してみました。.NET Framework 4.8のソースですが、
20
+
21
+ [System.Diagnostics.Debug - NET Framework 4.8 Reference Source](https://referencesource.microsoft.com/#System/compmod/system/diagnostics/Debug.cs,632c6da37ce825df)
22
+
23
+
24
+
25
+ それぞれのメソッドで`[System.Diagnostics.Conditional("DEBUG")]`が宣言されているので、`DEBUG`が定義されていないときは無効になるようなコードですね。