我得到了以下代码,这是一个按钮的点击事件:
protected void btnSave_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
CheckBoxList cbl = btn.Parent.FindControl("chkbx_list") as CheckBoxList;
if (cbl.SelectedItem.Value != null) //***Exception is thrown here***
{
//Do Stuff
}
}
如何检查cbl中的值。已选择项目。值为null?当我试图";参考";值,应用程序将抛出以下错误:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
System.Web.UI.WebControls.ListControl.SelectedItem.get returned null.
根据异常消息,问题是SelectedItem
为null,并且您正试图从该null实例访问成员。
首先检查要访问的成员是否为null,以避免null引用异常。
以下是详细的方法
if (cbl.SelectedItem != null && cbl.SelectedItem.Value != null)
或使用空条件运算符
if (cbl?.SelectedItem?.Value != null)
问题是,在检查null对象是否为null之前,您正试图对其使用toString((方法。您需要先检查父对象的值。
由于我无法发表评论,我应该在您更改问题时更改我的答案。当您将其用作强制转换对象的关键字时,如果强制转换失败,它可能会返回null,请首先检查cbl值,看看它是否为null。