Иногда я сталкиваюсь с методами, в которых разработчик решил вернуть что-то, что не критично для функции. Я имею в виду, что, глядя на код, он, очевидно, работает так же хорошо, как void
и, после некоторого момента я спрашиваю: «Почему?» Это звучит знакомо?
Иногда я соглашусь с тем, что чаще всего лучше вернуть что-то вроде bool
или int
, а не просто сделать void
. Я не уверен, хотя, в целом, о плюсах и минусах.
В зависимости от ситуации, возвращение int
может сообщить вызывающей стороне количество строк или объектов, на которые воздействует метод (например, 5 записей, сохраненных в MSSQL). Если такой метод, как «InsertSomething», возвращает логическое значение, я могу иметь метод, предназначенный для возврата в true
случае успеха, иначе false
. Абонент может выбрать, действовать или нет на эту информацию.
С другой стороны,
- Может ли это привести к менее ясной цели вызова метода? Плохое кодирование часто заставляет меня перепроверить содержание метода. Если он что-то возвращает, он говорит вам, что метод относится к типу, который вы должны сделать с возвращенным результатом.
- Другая проблема будет, если реализация метода вам неизвестна, что разработчик решил вернуть, который не является критически важным для функции? Конечно, вы можете это прокомментировать.
- Возвращаемое значение должно быть обработано, когда обработка может быть закончена на закрывающей скобке метода.
- Что происходит под капотом? Получил ли вызванный метод
false
из-за сгенерированной ошибки? Или он вернул false из-за оцененного результата?
Каков ваш опыт с этим? Как бы вы поступили с этим?
void
по крайней мере, дает разработчику понять, что возвращаемое значение метода несущественно; он делает действие, а не вычисляет значение.