[quote name='Данилка']Так объект же наследует Security.Cryptography.RandomNumberGenerator! И вполне работает. Разве он будет работать без объекта?[/quote]Здесь вызывается статический метод класса. Для предотвращения вероятных ошибок в написании метода или непонятного поведения, следует вызывать статические методы путем прямого обращения к классу, а не объекту данного класса. Это ошибка проектирования.[quote name='Данилка']Зато тут такая ситуация… если процедура отработала как надо, она в конце закроет потоки. А если произошло исключение, процедура отправляется в блок catch, а открытые потоки-то закрывать тоже как-то надо, иначе может быть утечка ресурсов… Вот, по книшшке читаю.[/quote]Никто не говорит, что закрывать не надо, надо открывать до блока либо выкидывать эксепшн выше и там его обрабатывать, чтобы не заморачиваться закрытием.Если не открылся – значит в кетче незачем закрывать, если эксепшн не при открытии, значит открывать надо до обработки эксепшена.Общие принципы проектирования обработки исключительных ситуаций.Пиши сначала тест, потом программу, заморочек будет на порядок меньше и качество выпускаемого кода – на порядок выше. Это не зависит от размера проекта, возьми за правило. Чем сложнее тест, тем меньше времени на последующую отладку приложения.
Copyright ©