删除这个无用的赋值给局部变量c#

问题描述 投票:1回答:3
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

c# lint sonarlint
3个回答
5
投票

不要使用var

StopFYON stopFyon;

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

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


2
投票

消息很简单:

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之后执行是没用的。


1
投票

它正在工作,当我更改代码StopFYON stopFyon = null而不是var stopFyon = new StopFYON();

© www.soinside.com 2019 - 2024. All rights reserved.