foreach (KeyValuePair<uint, Character> kvp in World.AllChars)
{
Character Charr = kvp.Value;
Charr.Do(); <-- NullrefException: Charr is null
}
代码检查:ConcurrentDict犯规阻止项目为空的循环中
foreach (KeyValuePair<uint, Character> kvp in World.AllChars)
{
Character Charr = kvp.Value;
if(Charr != null)
{
Charr.Do(); <-- NullrefException: Charr is null
}
}
编辑:
内DO()没有什么导致它为空,因为它并不甚至可以执行Do(),因为Charr为空。
这就是我的循环看起来像。我已经试过做一个if!= null检查,但它仍然会经过并抛出一个nullref异常。
我该如何预防?我使用一个Concurrent Dictionary和一个高度多线程的服务器架构。
究竟是什么?你看过调试器吗? – SLaks
你可以发布你的空检查的代码? –
您需要向我们显示失败的空检查代码 – Sean