Не рекомендуется возвращать строку со статусом метода.
Основная причина заключается в том, что это нарушает разделение проблем между уровнем пользовательского интерфейса и бизнес-уровнем. Вы нашли время, чтобы выделить бизнес-логику в ее собственный бизнес-уровень; это хорошая вещь. Но теперь бизнес-уровень в основном возвращает сообщение об ошибке непосредственно в пользовательский интерфейс. Сообщение об ошибке, отображаемое для пользователя, должно определяться уровнем пользовательского интерфейса.
С текущей реализацией бизнес-уровень также становится трудным в использовании (для тех, кто не знает о реализации явно), потому что нет контракта. Текущий контракт заключается в том, что метод вернет строку, которую вы должны отобразить пользователю. Такой подход затрудняет повторное использование. Два распространенных сценария, которые могут вызвать головную боль, это если вы хотите поддерживать новый язык (локализация) или если вы хотите представить некоторые из этих бизнес-методов в качестве службы.
Меня укусили, когда я пытался использовать какой-то старый код, подобный этому. Сценарий состоит в том, что я хочу повторно использовать метод, потому что он делает именно то, что я хочу, но я хочу предпринять некоторые действия, если происходит конкретная ошибка. В этом случае вы либо переписываете бизнес-логику (что иногда невозможно), либо вам приходится жестко кодировать ужасный оператор if в ваше приложение. например,
if (ProductBLL.CreateProduct(productType, product, ID) ==
"Max # of Products created Can't add Product")
{
...
}
Затем приходит требование, чтобы сообщение было изменено на что-то другое («Превышено максимальное количество продуктов. Пожалуйста, добавьте меньше продуктов и повторите попытку».). Это сломает приведенный выше код. В производстве. В субботу вечером.
Итак, в итоге: не делайте этого .