为什么在null检查后将int设置为0被认为是没有意义的?

时间:2016-06-23 22:48:23

标签: c# null zero dead-code

如果它为null,我将此代码设置为0:

if (null == frbdcbl.QtyOrdered)
{
    frbdcbl.QtyOrdered = 0;
}

...但是作业是灰色的,好像这样的操作没有实际意义。那为什么会这样?毕竟,null!= 0。

正在检查的值没有默认值0或类似值:

public class FillRateByDCByLocation
{
    . . .
    public int QtyOrdered { get; set; }
}

带有灰色分配的代码(AddFillRateByDCByLocationRow(())被调用如下:

foreach (FillRateByDCByLocation frbdcbl in _fillRateByDCByLocGroupedSortedSummed)
{
    AddFillRateByDCByLocationRow(frbdcbl);
}

3 个答案:

答案 0 :(得分:9)

它是一个可以为空的int吗?如果没有,它会变灰,因为int永远不会为空。

答案 1 :(得分:1)

QtyOrdered不能为null,因为null不是int的有效值,对任何struct都是一样。

答案 2 :(得分:1)

值类型(int,long,enum等)不能为null。永远不会达成作业,因此会变灰。