【发布时间】:2011-11-09 01:26:44
【问题描述】:
此方法是 OnRowCommand 在 aspx GridView 控件中的事件处理程序。 Resharper 警告 gvUnits、gvUnit.DataKeys 和 gvUnits.DataKeys[index] 可能为空,并建议在第二个 if 语句中添加检查。添加它们后,它会创建一个额外的警告,即gvUnits.DataKeys != null 始终为真。既没有按照它的建议添加这些检查,也没有手动添加断言抑制了警告。
我不明白这里发生了什么:gvUnits 是否易失,如果是,为什么,这是 resharper 5.1 中的错误,还是发生了其他事情?
protected void GvUnitsRowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
if (e.CommandName == "EditUnit")
{
int index = int.Parse(e.CommandArgument.ToString());
if (gvUnits != null && gvUnits.DataKeys != null && gvUnits.DataKeys.Count > index)
{
Debug.Assert(gvUnits != null);
Debug.Assert(gvUnits.DataKeys != null);
Debug.Assert(gvUnits.DataKeys[index] != null);
int unitID = (int)gvUnits.DataKeys[index].Value;
//do stuff with unitID
}
}
}
【问题讨论】: