删除对局部变量 c# 的无用赋值

remove this useless assignment to local variable c#

var  stopFyon = new StopFYON();
IEnumerable<CarOnline> carOnlineData = (IEnumerable<CarOnline>)vehrep.GetCarOnlineDetail(maintainStopFactoryOrderNo.VehicleDetail).Result;

if (carOnlineData.Any())
{
    stopFyon = vehtran.CreateStopFactoryOrderNo(carOnlineData, maintainStopFactoryOrderNo, lastUpdatedBy);
}
else
{
    stopFyon = vehtran.CreateStopFactoryOrderNo(null, maintainStopFactoryOrderNo, lastUpdatedBy);
}
return gen.GetResponse((Int16)ResultCode.Success, (Int16)MsgType.Ok, null, vehrep.StopFactoryOrderNo(stopFyon));

我在使用声纳代码分析时收到警告错误:

remove this useless assignment to local variable stopFyon

当我更改代码 StopFYON stopFyon = null 而不是 var stopFyon = new StopFYON();

时,它正在工作

不要使用 var:

StopFYON stopFyon;

警告的原因是您使用默认构造函数初始化变量(理论上这可能是一个非常昂贵的调用,至少它令人困惑)。但是这个分配在所有分支中被覆盖(ifelse)。所以没用。

如果您在 if 之前使用 stopFyon,警告也会消失。

消息非常简单:

IEnumerable<CarOnline> carOnlineData = (IEnumerable<CarOnline>)vehrep.GetCarOnlineDetail(maintainStopFactoryOrderNo.VehicleDetail).Result;

StopFYON stopFyon;

if (carOnlineData.Any())
    stopFyon = vehtran.CreateStopFactoryOrderNo(carOnlineData, maintainStopFactoryOrderNo, lastUpdatedBy);
else
    stopFyon = vehtran.CreateStopFactoryOrderNo(null, maintainStopFactoryOrderNo, lastUpdatedBy);

第一个作业:

var stopFyon = new StopFYON();

没用,因为紧接着在 if statement 中执行了另一个赋值。

只需使用 StopFYON stopFyon; 分配类型,无需初始化,因为您的 if 条件块正在分配实际值。