我想檢查變量是否在運行時以編程方式初始化。爲了讓這個原因不那麼神祕,請看下面不完整的代碼:C# - 檢查變量是否被初始化
string s;
if (someCondition) s = someValue;
if (someOtherCondition) s = someOtherValue;
bool sIsUninitialized = /* assign value correctly */;
if (!sIsUninitialized) Console.WriteLine(s) else throw new Exception("Please initialize s.");
並完成相關位。
一個哈克的解決辦法是用默認值來初始化S:
string s = "zanzibar";
然後檢查它是否改變了:
bool sIsUninitialized = s == "zanzibar";
但是,如果someValue
或someOtherValue
發生什麼是「桑給巴爾」以及?然後我有一個錯誤。有更好的方法嗎?
'string.IsNullOrEmpty(s)' – Shmiddty
這實際上不會編譯。變量必須被初始化。只需將它初始化爲null或string.Empty。 – McGarnagle
如果變量被另一個線程初始化會怎麼樣?您是否習慣於設置內存控制器以在寫入訪問時生成異常? – HABO