Я искал какой-то код, который унаследовал, и я не мог решить, нравится ли мне немного кода.Должен ли метод connect возвращать значение?
В принципе, есть метод, который выглядит следующим образом:
bool Connect(connection parameters){...}
Она возвращает истину, если он подключается успешно, иначе ложь.
Я написал такой код в прошлом, но теперь, когда я вижу этот метод, мне не нравится это по ряду причин.
Его легко написать код, который просто игнорирует возвращаемое значение или не реализует его, возвращает значение.
Невозможно вернуть сообщение об ошибке.
Проверка возврата метода не очень хорошо выглядеть:
если {....}
Я мог бы переписать код (Connect (...)!) вызывать исключение, когда он не соединяется успешно, но я не считаю это исключительной ситуацией. Вместо этого я имею в виду рефакторинга кода следующим образом:
void Connect(Connection Parameters, out bool successful, out string errorMessage){...}
Мне нравится, что другие разработчики должны предоставить строки успеха и ошибок, так что они знают, что метод имеет условия ошибки, и я могу знать, возвращать сообщение
У кого-нибудь есть мысли по этому поводу?
Благодаря Матф
Мне нравится этот подход. Это, безусловно, делает вещи ясными. Я думаю, что объединение метода TryConnect (...) с предложением Foovanadil о пользовательском типе возврата - это то, с чем я собираюсь идти. –
Если ваше соединение недолговечно, вы также можете рассмотреть возможность возврата IDisposable для простой очистки соединения следующим образом: using (var connection = connect (...)) { // используйте соединение } –