假設我有幾個只讀變量用於文件路徑,我能否根據聲明的順序來保證賦值的順序?readonly變量聲明的順序是否保證了值的設置順序?
例如
static readonly string basepath = @"my\base\directory\location";
static readonly string subpath1 = Path.Combine(basepath, @"abc\def");
static readonly string subpath2 = Path.Combine(basepath, @"ghi\klm";
這是一種安全的方法或者是有可能,basepath
仍可能是當時subpath1
和subpath2
字符串的默認值使該字符串的引用?
我知道我可以通過在構造函數中賦值而不是在聲明時保證順序。但是,我相信如果我需要在靜態類中聲明變量(例如,用於控制檯應用程序的Program.cs,它具有靜態無效的Main()過程而不是構造函數),則無法實現此方法。
UPDATE:
我已經添加了static關鍵字(因爲這是我使用的是什麼,以及爲什麼它編譯),也Path.Combine的建議。
爲什麼不讓它們成爲'const'?用'const'你可以肯定。 – Steven 2010-04-29 17:30:52
這些路徑可能成爲程序集中其他代碼依賴的程序集的一部分。有可能這些路徑可能會改變,我希望能夠做到這一點,而不必重新編譯依賴這些路徑值的程序集的其餘部分。對於常量,我別無選擇,只能重新編譯所有內容,而不僅僅是DLL。 – 2010-04-29 17:46:18