Допустим, _inner
используется у вас во многих местах, и есть некий публичный метод, который его возвращает. Тогда внешний код сможет вызвать этот метод, получить тот же экземпляр объекта _inner
и поставить на него свой lock
. Так можно случайно словить взаимоблокировку и повесить приложение.
Подобные моменты бывает очень сложно отследить, потому объект может быть возвращен косвенно, по интерфейсу, или как-либо еще. Отдельное поле _lock
- это просто правило хорошего тона, его создают для безопасности: очень маловероятно, что кому-то придет в голову использовать его за пределами инструкции lock
и тем более вернуть из метода.
Если у вас небольшой код и вы уверены, что знаете, что делаете - разницы нет.