重构(简单)语句

时间:2014-04-17 13:42:02

标签: c# refactoring

我想重构一个方法,但我不太清楚如何,但我知道你可以做到。

我目前的方法:

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;
        }

2 个答案:

答案 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)
}