C# 未设置捕获错误对象引用的干净方法
当DeliveryMethodComboBox没有selectedItem时 对象引用未设置为对象的实例 出现错误 解决这个问题的最好办法是什么? 在这个例子中,我添加了一个try-and-catchC# 未设置捕获错误对象引用的干净方法,c#,object-reference,C#,Object Reference,当DeliveryMethodComboBox没有selectedItem时 对象引用未设置为对象的实例 出现错误 解决这个问题的最好办法是什么? 在这个例子中,我添加了一个try-and-catch try { DeliveryMethodLabel2.Text = DeliveryMethodComboBox.SelectedItem.ToString(); } catch { DeliveryMethodLabel2.Text = ""; } 我假设你的意思是这个值为空
try
{
DeliveryMethodLabel2.Text = DeliveryMethodComboBox.SelectedItem.ToString();
}
catch
{
DeliveryMethodLabel2.Text = "";
}
我假设你的意思是这个值为空 **假设列表中没有空值,并且只关心是否有选择
if(DeliveryMethodComboBox.SelectedIndex != -1)
{
DeliveryMethodLabel2.Text = DeliveryMethodComboBox.SelectedItem.ToString();
}
else
{
DeliveryMethodLabel2.Text = "";
}
否则,如果DeliverMethodComboBox可以为null,只需将if更改为
if(DeliveryMethodComboBox != null && DeliveryMethodComboBox.SelectedIndex != -1)
NullReferenceException
是初学者的常见情况。提供的链接应有助于您了解问题。然后使用调试器查找变量为null
的内容/位置/时间。最好的方法是实际检查是否已选择某个项。不要为类似的事情使用try/catch
块。将异常视为不同于错误。当我与初学者程序员交谈时,我告诉他们将异常视为“他们从未见过的事情”。因此,例如,有人没有在下拉列表中进行选择—您应该预料到这一点。这是很平常的事,它会发生的。这使它成为一个错误,而不是一个例外。系统内存不足,这是个例外。这不是我们期望正常发生的事情。我希望这有助于澄清一点。@Dirk我不需要检查是否选择了某个项目,我需要知道selectedItem是否为空。但是谢谢你@dman2306你的意思是,当你知道可能有错误时,千万不要接球。谢谢