C# 无用任务-声纳警告
我有下面的一段代码,其中给我一个无用任务的警告C# 无用任务-声纳警告,c#,sonarqube,C#,Sonarqube,我有下面的一段代码,其中给我一个无用任务的警告 Agent-agentInfo=new-Agent(); if(_userProfile.UserType==Constants.AgentUserType) return agentInfo=(来自_eAppDataAccess.agents.FindAll()中的代理) 其中agents.AgentCode==\u agentNumber 选择新代理 { Address1=代理。Address1, Address2=代理。Address2, P
Agent-agentInfo=new-Agent();
if(_userProfile.UserType==Constants.AgentUserType)
return agentInfo=(来自_eAppDataAccess.agents.FindAll()中的代理)
其中agents.AgentCode==\u agentNumber
选择新代理
{
Address1=代理。Address1,
Address2=代理。Address2,
PhoneNumber=代理。电话
}).FirstOrDefault();
其他的
返回代理信息;
只需删除赋值agentInfo
变量,并直接返回结果即可
return (from agents in _eAppDataAccess.Agents.FindAll()
where agents.AgentCode == _agentNumber
select new Agent
{
Address1 = agents.Address1,
Address2 = agents.Address2,
PhoneNumber = agents.Phone
}).FirstOrDefault();
您正在分配
Agent agentInfo=new Agent()
,而稍后将在不向agentInfo
执行任何操作的情况下重新分配它。您可以省去它,直接在else子句中返回newagentinfo()
。像这样:
if(_userProfile.UserType==Constants.AgentUserType)
返回(来自_eAppDataAccess.agents.FindAll()中的代理)
其中agents.AgentCode==\u agentNumber
选择新代理
{
Address1=代理。Address1,
Address2=代理。Address2,
PhoneNumber=代理。电话
}).FirstOrDefault();
其他的
返回新代理();
Edit:CodeCaster在我忽略的评论中指出了一些东西。当他的
\u agentNumber
找不到代理时,返回null
;当\u userProfile.UserType
不是AgentUserType
类型时,返回新代理()。这是故意的吗?那else子句呢?欢迎使用堆栈溢出。请阅读和。你从哪里得到这个警告?你试过什么吗?你知道SonarQube在报道什么吗?你能给我们解释一下这个代码在做什么吗?这样我们就知道该向你解释什么了?另外,如果\u agentNumber
未找到,则返回null
,如果\u userProfile.UserType!=常量.AgentUserType
。这是故意的吗?.FirstOrDefault()
意味着您希望有0、1、2或更多带有该_agentNumber的记录。如果您只期望一个,请使用.Single()
使您的意图更清楚(并在假设错误时引发异常)。如果最多只能使用一个,但可能没有,请使用SingleOrDefault()。