使用#if #endif可以在同樣源碼上生成不同的編輯(結果),通常是調式(debug)和發佈(release)版本。 但是#if/#endif很容易被濫用,使得編寫的代碼難以理解和調式,所以C#提供了條件特性(Conditional attribute)來識別哪些方法可以根據環境設置來判斷是否應該 ...
使用#if #endif可以在同樣源碼上生成不同的編輯(結果),通常是調式(debug)和發佈(release)版本。
但是#if/#endif很容易被濫用,使得編寫的代碼難以理解和調式,所以C#提供了條件特性(Conditional attribute)來識別哪些方法可以根據環境設置來判斷是否應該被調用。
條件特性比條件編輯#if #endif更加清晰明白,所有優秀使用Conditional attribute
[Conditional("DEBUG")]//只在Debug模式下test方法才會被調用 public static void Test() { Console.WriteLine("Debug"); }
總結:編譯器使用Conditional特性來幫助開發者使用#if #endif 而產生常規錯誤。條件特性比起預處理,它為區分條件代碼提供了更好的區分