Объявить ресурс вне оператора using - PullRequest
0 голосов
/ 30 мая 2020

У меня вопрос по поводу C# using выписки. Согласно документации, рекомендуется как объявить, так и инициализировать ресурс (например, объект SqlConnection) внутри оператора using. Мой вопрос: если я только объявлю объект вне области видимости using (и инициализирую его как часть оператора using), будет ли он полностью равен объявлению его как части оператора using? Мой вариант использования заключается в том, что мне нужно использовать объект SqlConnection за пределами области использования. (Я хотел бы позвонить по нему SqlConnection.ClearPool, если я получу какое-то конкретное исключение c.

1 Ответ

1 голос
/ 30 мая 2020

Оба сценария ios эквивалентны. Но когда вы объявляете переменную за пределами области действия using оператор , переменная будет удалена после завершения области действия using оператора , но по-прежнему останется в области видимости. Случайное использование переменной после области действия оператора using может привести к возникновению исключения. Это считается плохой практикой, и ее следует избегать. У меня никогда не было причин объявлять переменную перед оператором using.

...