C# 重构(简单)语句
我想重构一个方法,但我不太确定如何重构,但我知道你可以做到 我目前的方法是:C# 重构(简单)语句,c#,refactoring,C#,Refactoring,我想重构一个方法,但我不太确定如何重构,但我知道你可以做到 我目前的方法是: public bool AdminShutdown(int accountID, int accountPin) { var status = false; if (accountID == AdminLogin && accountPin == AdminPin) { status
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,但这不起作用。运算符“&&”不能应用于类型为“bool”和“int”的操作数
建议
还有,这个代码行吗
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;
}
如果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();
如果希望得到与方法相同的结果。accountID==AdminLogin&&accountPin==AdminPin可以简单地计算为bool
public bool AdminShutdown(int accountID, int accountPin)
{
return (accountID == AdminLogin && accountPin == AdminPin)
}
AdminLogin和AdminPin的类型是什么?该错误消息没有任何意义。您最初是否在if块的某个地方键入了=而不是==呢?Ad PS-最好是SingleOrDefault。。。因为如果谓词不是空的,它将返回nullmatched@amnezjak如果return为null,则使用新元素代替FirstOrDefault。我们不知道重写方法中的single。有点像主题,但是,您可能需要研究类的命名。类别AccountHolder是否包含多个帐户?如果不是,则应命名为AccountHolder。也就是说,Holder并没有传达任何有意义的信息,所以我称之为类账户。与AccountHoldersList相同,变量名中不需要类型名。只要说出一个或多个帐户。出于类似的原因,我将ReturnAccountInfo重命名为GetAccount。最后但并非最不重要的一点是,通过用户id识别管理员似乎不是一个很好的主意。我希望有一个枚举,并将其添加到帐户类谢谢:。当你的回答让我满意时,我会接受的