Я хотел бы узнать ваше мнение по поводу стиля кодирования, о котором я сомневаюсь. Я понимаю, что, вероятно, нет однозначного ответа, но я хотел бы узнать, есть ли сильные предпочтения в том или ином направлении.
Я просматриваю решение, добавляющее операторы using
во многих местах. Часто мне попадается что-то вроде этого:
{
log = new log();
log.SomeProperty = something; // several of these
log.Connection = new OracleConnection("...");
log.InsertData(); // this is where log.Connection will be used
... // do other stuff with log, but connection won't be used again
}
где log.Connection - это OracleConnection, который реализует IDisposable.
Чистильщик во мне хочет поменять его на:
{
using (OracleConnection connection = new OracleConnection("..."))
{
log = new log();
log.SomeProperty = something;
log.Connection = conn;
log.InsertData();
...
}
}
Но любителям краткости и краткости работы хочется сделать:
{
log = new log();
log.SomeProperty = something;
using (log.Connection = new OracleConnection("..."))
log.InsertData();
...
}
По какой-то причине я чувствую себя немного грязным, делая это. Считаете это плохим или нет? Если ты думаешь, что это плохо, почему? Если хорошо, то почему?
РЕДАКТИРОВАТЬ: обратите внимание, что это всего лишь один (несколько надуманный) пример из многих. Пожалуйста, не зацикливайтесь на том, что это происходит для указания класса регистратора с плохо продуманным интерфейсом. Это не имеет отношения к моему вопросу, и я в любом случае не вправе улучшать сами классы.