Попробовать / окончательно заблокировать вызов?

Есть ли разница между этими двумя примерами кода, и если нет, то почему существует using?

StreamWriter writer;
try {
    writer = new StreamWriter(...)
    writer.blahblah();

} finally {
    writer.Dispose();
}

против:

using (Streamwriter writer = new Streamwriter(...)) {
    writer.blahblah
}

Я имею в виду, что во втором примере вы на самом деле все равно стоит поместить его в блок try, поэтому добавление блока finally не требует больших усилий. Я понимаю, что все это может быть заключено в более крупный блок попыток, но да, мне просто кажется излишним.

8
задан Jason Capriotti 3 November 2014 в 07:59
поделиться