带有错误消息的最后一个MessageBox
不起作用;程序崩溃了。我想使用MessageBox
向用户显示他们忘记选择其中一项:Mountenbike,Rennrad或Faltrad。
if (typen.SelectedItem.ToString() == "Mountenbike")
{
mb = new Mountenbike(artikelNr, name, ekPreis, vkPreis);
mbCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Rennrad")
{
rr = new Rennrad(artikelNr, name, ekPreis, vkPreis);
rrCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Faltrad")
{
fr = new Faltrad(artikelNr, name, ekPreis, vkPreis);
frCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem == null)
{
MessageBox.Show("Error - Please enter xyz");
}
答案 0 :(得分:2)
您可能会遇到异常,因为您无法在空引用上实例化方法ToString()
,假设您的上一个else if
语句假定typen.SelectedItem
的值可能为null如果没有选择任何东西。
在实例化任何方法之前,您应首先检查typen.SelectedItem
的值是否为null
。这可以简单地完成:
if (typen.SelectedItem == null)
{
MessageBox.Show("Error - Please enter xyz");
return;
}
if (typen.SelectedItem.ToString() == "Mountenbike")
{
mb = new Mountenbike(artikelNr, name, ekPreis, vkPreis);
mbCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Rennrad")
{
rr = new Rennrad(artikelNr, name, ekPreis, vkPreis);
rrCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Faltrad")
{
fr = new Faltrad(artikelNr, name, ekPreis, vkPreis);
frCounter++;
MessageBox.Show("Fertig");
}