【发布时间】:2020-06-10 07:02:09
【问题描述】:
我有下面一段代码,其中给了我无用分配的警告
Agent agentInfo = new Agent();
if (_userProfile.UserType == Constants.AgentUserType)
return agentInfo = (from agents in _eAppDataAccess.Agents.FindAll()
where agents.AgentCode == _agentNumber
select new Agent
{
Address1 = agents.Address1,
Address2 = agents.Address2,
PhoneNumber = agents.Phone
}).FirstOrDefault();
else
return agentInfo;
【问题讨论】:
-
欢迎来到 Stack Overflow。请阅读tour 和How to Ask。你究竟从哪里得到这个警告?你试过什么吗?您了解 SonarQube 报告的内容吗?你能向我们解释一下这段代码在做什么,所以我们知道要向你解释什么吗?此外,当
_agentNumber找不到时,您返回null,当_userProfile.UserType != Constants.AgentUserType时返回new Agent()。这是故意的吗? -
.FirstOrDefault()表示您希望有 0、1、2 条或更多记录具有该 _agentNumber。如果您期望完全正确,请使用.Single()使您的意图更清晰(并在您的假设错误时抛出异常)。如果您希望最多有一个,请使用SingleOrDefault(),但可能没有。