Несколько объектов против изменения одного объекта - PullRequest
1 голос
/ 27 декабря 2011

Сегодня я увидел что-то, говорящее об этом:

aClass something;
while (condition) {
    something = new aClass();
    ...
}
while (condition) {
    aClass something = new aClass();
    ...
}

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

Ответы [ 3 ]

4 голосов
/ 27 декабря 2011

Ваш первый пример пропускает бесполезную переменную во внешнюю область.

1 голос
/ 27 декабря 2011

Второй метод сохраняет переменную something только в области этой конкретной итерации цикла.
Если вы хотите использовать объект вне цикла и / или сохранить изменения, сохраненные между итерациями, то вы должны использовать Первый метод.

Кроме того, второй метод не определяет несколько переменных, компилятор обычно оптимизирует его таким образом, чтобы убедиться, что определена только одна переменная.

1 голос
/ 27 декабря 2011

Вы должны использовать второй пример , если вам не нужно использовать объект после завершения цикла while. Если вам не нужна переменная во внешней области видимости, лучше объявить ее в самой узкой области видимости, где она будет использоваться (внутри цикла). Это упрощает код для программистов обслуживания, которые должны понимать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...