我想重构一个方法,但我不太清楚如何,但我知道你可以做到。
我目前的方法:
public bool AdminShutdown(int accountID, int accountPin)
{
var status = false;
if (accountID == AdminLogin && accountPin == AdminPin)
{
status = true;
}
return status;
}
我认为应该是这样的
var status = (accountID == AdminLogin) && (accountPin == AdminPin)
但这不起作用(Operator '&&' cannot be applied to operands of type 'bool' and 'int'
)。
建议?
P.S。这段代码会起作用吗?
var tempReturnPerson = AccountHoldersList.Single((x => x.AccountNumber == accountId));
而不是:
public AccountHolders ReturnAccountInfo(int accountId)
{
//use linq to do this later
var returnPerson = new AccountHolders();
foreach (var person in AccountHoldersList)
{
if (accountId == person.AccountNumber)
{
returnPerson = person;
break;
}
}
return returnPerson;
}
答案 0 :(得分:6)
如果AdminLogin和AdminPin是int,而不是
public bool AdminShutdown(int accountID, int accountPin)
{
return (accountID == AdminLogin && accountPin == AdminPin);
}
您收到的错误消息让我觉得您可能使用的是=
而不是==
修改强>
关于你的第二个问题
var tempReturnPerson = AccountHoldersList.Single((x => x.AccountNumber == accountId));
应该是
var tempReturnPerson = AccountHoldersList.FirstOrDefault(x => x.AccountNumber == accountId) ?? new AccountHolders();
如果您想要与方法相同的结果。
答案 1 :(得分:0)
"(accountID == AdminLogin&& accountPin == AdminPin)"可以简单地评估为bool
public bool AdminShutdown(int accountID, int accountPin)
{
return (accountID == AdminLogin && accountPin == AdminPin)
}