이 메서드는 aspx GridView 컨트롤에서 OnRowCommand
에 대한 이벤트 처리기입니다. Resharper는 gvUnits
, gvUnit.DataKeys
및 gvUnits.DataKeys[index]
이 null 일 수 있으며 2 차 if 문에 검사를 추가 할 것을 제안합니다. 추가 된 후에는 gvUnits.DataKeys != null
이 항상 참이라는 추가 경고가 생성됩니다. 제안 된대로 이러한 검사를 추가하거나 수동으로 어설 션을 추가하면 경고가 표시되지 않습니다.resharper가이 코드에 대해 여전히 null 참조 경고를 제공하는 이유
여기에 무슨 일이 일어나고 있는지 이해할 수 없습니다. gvUnits volatile이며, 그렇다면 왜 resharper 5.1의 버그입니까? 아니면 계속 진행되고 있습니까? DataKeys
는 속성이라고 가정
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
}
}
}
체크하고 DataKeys는 인덱서 메서드를 통해 액세스하는 속성입니다. 이제는 의미가 있습니다. resharper가 작동하지 않는 'fix'를 생성하지 않도록 조금 더 똑똑 할 수 있습니다 (여기서 v6이 더 좋습니까?). –