2016-03-09 4 views
1

У меня есть метод, который возвращает 1, если операция успешна, и 0, если операция не выполнена. Я использую структуру сущности для выполнения операций с базой данных.Вставить обзор кода операции

public class Employee 
{ 
    public int InsertEmployee(Employee employee) 
    { 
     //insert code 
     if(employee.EmployeeId > 0) 
     { 
      return 1; 
     } 
     else 
     { 
      return 0; 
     } 
    } 
} 

Это хорошая практика переписать выше метод, как показано ниже.

public enum StatusMessage { Success, Error }; 

public static class Status 
{ 
    public static StatusMessage GetStatus(this int status) 
    { 
     if (status > 0) 
     { 
      return StatusMessage.Success; 
     } 
     else 
     { 
      return StatusMessage.Error; 
     } 
    } 
} 

public class Employee 
{ 
    public StatusMessage InsertEmployee(Employee employee) 
    { 
     //insert code 
     return employee.EmployeeId.GetStatus() 
    } 
} 

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

Заранее спасибо

+2

Почему бы не вернуть 'boolean'? Вы должны изменить его на «Enum», если у вас более двух состояний. –

+5

Я думаю, что этот вопрос больше подходит для CodeReview, потому что у вас нет реальной проблемы, с которой вам нужна помощь, это всего лишь вопрос, основанный на мнениях. –

ответ

1

Я бы на самом деле рассмотрел вопрос о возврате void и исключении исключения, если операция завершилась неудачно.

Если вы предпочитаете возвращать индикатор состояния, вы должны переименовать свой метод на что-то вроде TryInsertEmployee. В этом случае я просто вернул бы bool, чтобы указать на успех. Проблема, конечно, в том, что вы не можете приложить больше информации о том, почему операция не была выполнена успешно. За исключением, вы можете.

Причиной обеих этих точек:

сгенерирует исключение, если метод не может выполнить действие, которое описывает его название.

+0

Хорошие аргументы, лучшее решение. +1 –

+0

Спасибо за ответ. Не могли бы вы привести пример? – Chary

1

я бы вернуть Boolean. True/False -> Успех/Неудачный успех

  • Возвращение Int может создать путаницу. Некоторые предполагают, что вы возвращаете идентификатор.
  • Используйте Enum, если может быть возвращено более одного состояния.
Смежные вопросы