2014-09-22 5 views
-1

Итак, моя задача заключается в следующем:проверки C# данных, прежде чем устанавливать значения

Конструктор должен вызвать конструктор базового класса для инициализации учетной записи имени, номер и баланса. Он также должен вызывать метод в своем собственном классе, setInterestRate, который должен установить переменную InterestRate и подтвердить, что ставка является положительным числом. Если процентная ставка, принятая в процентах, отрицательна, установите процентную ставку на ноль.

Это кажется довольно простым для меня, но VS пингует меня за мой метод setInteresteRate (не все коды кода возвращают значение). Я должен что-то упустить, но я не уверен, что. Какие-либо предложения? Вот мой код:

public SavingsAccount(string AccountName, int AccountNumber, decimal Balance, double rate) : base(AccountName, AccountNumber, Balance) 
    { 
     InterestRate = rate; 
    } 

    public double setInterestRate(double rate) 
    { 
     if (rate >= 0) 
     { 
      InterestRate = rate; 
     } 
     else 
     { 
      InterestRate = 0; 
     } 
    } 
+0

Может быть, не самый лучший дубликат ... Если вам не нравится этот один, не стесняйтесь проверьте MSDN [CS0161] (http://msdn.microsoft.com/en-us/library/87cz4k9t%28v=vs.90%29.aspx) или выполните поиск SO - http://stackoverflow.com/search?q= [c% 23] not + all + code + paths + return + a + и добавить дополнительную информацию, так что понятно, почему ваш друг. –

+0

Алексей, спасибо за ссылку! Я также проверяю это и закладываю закладки для будущих задач! – user3533863

ответ

1

Сделайте свой метод setInterestRate недействительным, как показано ниже. потому что вам нужно только установить InterestRate.

public void setInterestRate(double rate) 

Если у вас есть тип возврата в вашем методе, вы должны вернуть значение. вот что показывает ваша ошибка.

Предложение

Сделайте InterestRate к свойству, как показано ниже образца и сделать проверку там

double interestRate; 
    public double InterestRate 
    { 
     get 
     { 
      return interestRate; 
     } 
     set 
     { 
      if (value >= 0) 
      { 
       interestRate = value; 
      } 
      else 
      { 
       interestRate = 0; 
      } 
     } 
    } 
+0

+1 для части предложения (поиск хорошего дубликата может быть лучшим подходом - ОП не является первым, кто попадает в ошибку CS0161). Обратите внимание, что вы можете подумать о том, чтобы исключить исключение из-за отрицательной скорости - обычно лучше сбой, чем использование «случайных» значений вместо ввода. –

+0

Спасибо всем за информацию, это, похоже, решило проблему. Я попытаюсь найти дубликаты из MSDN в будущем. Еще раз спасибо! – user3533863

Смежные вопросы