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()。