raz*_*z3r 6 c# foreach nullreferenceexception
foreach (string s in myField.getChilds()) {
if (s == null)
//handle null
else
//handle normal value
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的程序时,我得到一个NullReferenceException,因为getChilds可能返回null.如何使程序继续运行并处理异常?我不能在foreach之外处理它,无法解释为什么因为它需要花费太多时间(而且我相信你们很忙:P).有任何想法吗?
我已经尝试过这种方式:
foreach (string s in myField.getChilds() ?? new ArrayList(1)) {
if (s == null)
//handle null
else
//handle normal value
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,程序只是跳到foreach的末尾,但我想让它进入foreach而不是!
Gab*_*abe 11
一种方法(尽管不是最好的方法)是:
foreach (string s in myField.getChilds() ?? new string[] { null })
Run Code Online (Sandbox Code Playgroud)
要么
foreach (string s in myField.getChilds() ?? new ArrayList { null })
Run Code Online (Sandbox Code Playgroud)
究其原因new ArrayList(1)不工作是,它创建了具有列表能力保持1元,但仍然是空的.但是new string[] { null }创建一个带有单个元素的字符串数组,该元素只是null,这是您想要的.
| 归档时间: |
|
| 查看次数: |
13357 次 |
| 最近记录: |