Іноді я стикаюся з методами, коли розробник вирішив повернути щось, що не є критично важливим для функції. Я маю на увазі, дивлячись на код, він, мабуть, працює так само добре, як voidі після хвилини роздуму, я запитую "Чому?" Це звучить знайомо?
Іноді я б погодився, що найчастіше краще повернути щось на кшталт boolабо int, а точніше просто зробити void. Я не впевнений, хоча у великій картині про плюси і мінуси.
Залежно від ситуації, повернення значка intможе дати абоненту знати кількість рядків або об'єктів, на які впливає метод (наприклад, 5 записів, збережених у MSSQL). Якщо такий метод, як "InsertSomething", повертає булевий, я можу мати метод, призначений для повернення у trueвипадку успіху false. Абонент може вибирати чи не діяти на цій інформації.
З іншої сторони,
- Чи може це призвести до менш чіткої мети виклику методу? Погане кодування часто змушує мене двічі перевірити вміст методу. Якщо він щось повертає, він говорить вам, що метод такого типу, що вам потрібно щось робити з повернутим результатом.
- Інша проблема, якщо впровадження методу вам невідоме, що розробник вирішив повернути, що не є критично важливим? Звичайно, ви можете прокоментувати це.
- Повертане значення повинно бути оброблене, коли обробка могла закінчитися в кінцевій дузі методу.
- Що відбувається під кришкою? Чи отримав викликаний метод
falseчерез помилку, яку викинули? Або він повернув помилку через оцінений результат?
Який у вас досвід з цим? Як би ви діяли з цього приводу?
voidпринаймні, дозволяє розробникові знати, що повернене значення методу є несуттєвим; вона робить дію, а не обчислює значення.