Я согласен с вами в определенной степени.Независимо от того, поддерживают ли ответы здесь так называемые методы бога (маленький g) или нет, я лично, как и вы, чувствую, что методы должны быть точными в том, что они делают.
Тем не менее, локальные функции могут фактически поддерживать SOLID.Одним из примеров является возможность легко подключать обратные вызовы от событий, предоставляя методу единственную ответственность, закрывать область действия и минимизировать ошибки.Это может быть сделано с местными делегатами, но это не так чисто или прямо.
Рекурсивные локальные функции также соответствуют SOLID.Есть много ситуаций, когда вам нужно написать два метода для завершения одной операции, потому что это рекурсивный метод, и теперь вы можете поместить эту логику в одно место.Иногда даже в зависимости от данных и типов, которые передаются, локальные функции будут работать лучше из-за того, что они заимствуют переменные области действия.
Это только два быстрых примера, которые, вероятно, не требуютдебаты или много кода, чтобы проиллюстрировать, как локальные функции могут быть лучше и лучше встроены в SOLID, но есть и другие.
Локальные функции также могут легко влиять на ваш код и затруднять управление / чтение и отрыв от принципов SOLID.Как и любой другой компонент C #, мы несем ответственность за выбор, когда и почему мы используем локальные функции и SOLID, а также другие методы / рекомендации по разработке, которые следует учитывать, когда мы это делаем.Я не согласен с тем, чтобы делать методы более длинными, более сложными или иметь более чем одну работу, которую нужно выполнять только ради методов определения объема.