我想要一種具有「全局預處理器定義」的方法,以便在編譯之前更改單個值以添加或刪除程序的功能。目前,我有consts如 「全局腳本」(被稱爲God.cs):如何在一個地方進行全局預處理器定義而不需要很多警告?
public const bool PRINT_RUN_VALUES = true;
public const bool DEBUG_MOVEMENT = false;
public const bool DOUBLE_SPEED = false;
使用這些值的所有相關的腳本,例如:
腳本1:
if (God.PRINT_RUN_VALUES) {
float averageDist = /* calculate values */
print("Script1: averageDist = " + averageDist);
}
腳本2:
if (God.PRINT_RUN_VALUES) {
print("Script2: radius = " + radius);
print("Script2: time = " + time);
}
這種方法的問題是,我得到噸的
CS0162:無法訪問的代碼檢測
警告。我可以通過關閉這些警告:
#pragma warning disable 0162
#pragma warning disable 0429
但我不想這樣做,因爲這些警告可能的情況下非常有用不涉及從God.cs.這些值另一種可能是使用傳統的預處理器定義,如:
#define PRINT_RUN_VALUES
...
#if (PRINT_RUN_VALUES)
float averageDist = /* calculate values */
print("Script1: averageDist = " + averageDist);
#endif
但是據我知道,需要我在每個.cs文件的開頭添加「的#define PRINT_RUN_VALUES」,這將成爲一場噩夢當我想快速關閉或在這些全球性聲明。我希望所有這些全局定義都是一個地方,以便我可以快速關閉它們。
如何定義一些預處理器事物,使其不包含在每個腳本中?我知道有符合這個標準的proprocessor定義,比如定義來檢查什麼操作系統正在編譯這個軟件。或者有另一種解決方法嗎?
您可以在項目屬性中設置這些,這是如何定義DEBUG的。 – DavidG
所以你不會真正理解這個警告,以及這種非常糟糕的做法會如何陷入困境。你真的*想知道什麼?你想知道不方便的事實嗎?還是你不想提醒你不知道什麼? –