为什么Resharper在此提供“删除无法访问的代码”?

时间:2015-11-01 13:30:56

标签: c# resharper

检查我使用Resharper继承的项目,它首先建议我将其包装:

if (cellRng != null)

...围绕一些代码,所以只有当cellRng不为null时才会对其执行操作。但是在这样做之后,它告诉我“if block”代码无法访问,无论如何。以下是上下文中的代码:

if (cellRng != null)
{
    cellRng.Font.Bold = true;
    cellRng.Value2 = ave.ToString(CultureInfo.InvariantCulture);
    cellRng.NumberFormat = "##0.00";
    cellRng.HorizontalAlignment = XlHAlign.xlHAlignCenter;
    . . .
}

代码如何引用可能为空的对象(cellRng),然后,在实现该检查之后,实际上结果总是为null(如果不为null则运行的代码被视为无法访问)?

在下面的第二行中,Resharper提供删除代码,说“表达式始终为空”

cellRng = _xlSheet5.Cells[rowIdx, colCnt] as Range;
if (cellRng != null)

但那是怎么回事?如何将分配给cellRng的范围视为始终为空?

上面代码后面的if块中的代码被Resharper标记为“代码启发式无法访问”

捷克人!?!?!

0 个答案:

没有答案