vidur823 Ответов: 3

Можете ли вы помочь упростить/исправить следующий код


Я новичок в C#,не могли бы вы помочь упростить следующий код:

public class AccountInfo
{
               public int AccountId { get; set; }
               public string AccountName { get; set; }
               public bool AccountActive { get; set; }
}

private static bool IsAccountActive(Guid accountId)
{
               if(accountId == null)
               {
                              throw new Exception("Account id is null.");
               }
               else
               {
                              if(AccountIdExists(accountId) == true)
                              {
                                             AccountInfo acctInfo = RetrieveAccountInformation(accountId);
                                             if(acctInfo.AccountActive == true)
                                             {
                                                            return acctInfo.AccountActive
                                             }
                                             else
                                             {
                                                            return acctInfo.AccountActive
                                             }
                              }
                              else
                              {
                                             throw new Exception("Account with account id was not found.");
                              }
               }
}

private static bool AccountIdExists(Guid accountId)
{
}


Что я уже пробовал:

Можете ли вы помочь упростить/исправить следующий код и объяснить, в чем заключается проблема в нем?Спасибо!

3 Ответов

Рейтинг:
2

George Swan

Вы можете избежать всего этого. else заявления перестановка свой if заявления. Кроме того, я бы просто вернулся false если идентификатор учетной записи не существует. Это не очень хорошая идея, чтобы контролировать поток программы, бросая исключения и ловить их в другом месте вашего кода. Мое предложение, как бы то ни было, было бы примерно таким.


private static bool IsAccountActive(Guid accountId)
  {
    if (accountId == null)
     {
      throw new ArgumentException("Parameter cannot be null", "accountId");
     }

    if (!AccountIdExists(accountId))
     {
       return false;
     }
    AccountInfo acctInfo = RetrieveAccountInformation(accountId);
    return acctInfo.AccountActive;

  }


Рейтинг:
1

Patrice T

Настоящий кодекс

if(acctInfo.AccountActive == true)
{
               return acctInfo.AccountActive // because this line
}
else
{
               return acctInfo.AccountActive // a,d this line are same
}

может быть упрощен до
return acctInfo.AccountActive


Рейтинг:
0

R. Giskard Reventlov

if (AccountIdExists(accountId))
{
    var acctInfo = RetrieveAccountInformation(accountId);
    return acctInfo.AccountActive;
}
else
{
    throw new Exception("Account with account id was not found.");
}