嘿,我有这样的代码
public object RetrieveItemRun(int item)
{
if (dictionary.ContainsKey(item))
{
MessageBox.Show("Retrieving" + item.ToString());
}
return dictionary[item];
}
Run Code Online (Sandbox Code Playgroud)
当尝试获取0的键时它总是崩溃,消息框确实显示所以ContainsKey方法为真,但当我尝试从键中检索值时它崩溃说:
"给定的密钥不在字典中"
小智 14
您正试图独立检索密钥是否存在.尝试将代码更改为:
public object RetrieveItemRun(int item)
{
if (dictionary.ContainsKey(item))
{
MessageBox.Show("Retrieving" + item.ToString());
return dictionary[item];
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
如果存在,则返回该项目.原始代码返回假设项目退出(外部检查)
您还可以使用TryGetValue方法来避免异常:
public object RetrieveItemRun(int item)
{
object result;
if (dictionary.TryGetValue(item, out result))
{
MessageBox.Show("Retrieving" + item);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)