时
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));
使用声纳代码分析时我会出现警告错误:
将此无用的分配删除到本地变量
stopFyon
不要使用 var
:
StopFYON stopFyon;
警告的原因是您使用默认构造函数初始化变量(从理论上讲可能是一个非常昂贵的调用,至少它令人困惑)。但是,此任务在所有分支中都被覆盖(if
和else
)。所以这没用。
如果您在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 = null
而不是var stopFyon = new StopFYON();
只需使用StopFYON stopFyon;
分配类型,无需像条件块分配实际值一样初始化。