Жесть. Такой изврат ради того, чтоб не писать tr.Commit () ?! Вы серьезно считаете что это проще? Или я живу в другой вселенной....
Ну да. Голова не болит - поставил я Commit или нет? Иногда, например, если полученный объект не соответствует критериям, то ставишь return и выходишь из метода задолго до конца блока using транзакции. В этом случае надо тоже не забыть перед return Commit сделать. А таких мест может быть несколько, нужно держать в голове всё время эту особенность с Commit, концентрироваться на этом. А вот такие вот "извраты" позволяют меньше уделять внимания этим мелочам и больше концентрироваться на непосредственно реализации задачи. Можно сказать, что эти "извраты" - это обёртки, позволяющий сгладить некоторые огрехи AutoCAD API. Со временем, таких обёрток довольно много набирается. Методы со встроенными проверками. Методы, которые учитывают различные особенности, с которыми столкнулся в прошлом. Методы, которые просто упрощают взаимодействие с API. И т.п. Посади меня сейчас писать приложение "с нуля" без использования моих вспомогательных библиотек - я буду себя чувствовать крайне неуютно.
Но, потом убрал, т.к. при исключениях все равно будет вызван Commit(), мне кажется это не хорошо.
Возможно. Как-то даже не задумывался об этом. А при исключении не всё равно что в итоге будет: Commit или Abort? У меня обычно с высокой вероятностью далее будет Fatal Error