我想检查变量是否在运行时以编程方式初始化。为了让这个原因不那么神秘,请看以下不完整的代码:
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.");
并完成相关位。
一个 hacky 解决方案是使用默认值初始化 s:
string s = "zanzibar";
然后检查它是否改变:
bool sIsUninitialized = s == "zanzibar";
但是,如果someValue
或someOtherValue
碰巧也是“桑给巴尔”怎么办?然后我有一个错误。有更好的办法吗?