Информация об изменениях

Сообщение Re[4]: [C# 7] Design notes, Mar 18 от 19.05.2015 18:36

Изменено 19.05.2015 18:37 Jack128

Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, AndrewVK, Вы писали:


AVK>>Не?

S>
S>static TReturn Using<TValue, TReturn>(Func<TValue> val, Func<TValue, TReturn> callback) {...}
S>

S>тогда уж.

S>Иначе первый же залетевший дятел одно исключение — и утёкший ресурс

А можно пояснить ??
Вот есть метод
static TReturn Using<TValue, TReturn>(this TValue val, Func<TValue, TReturn> callback) where TValue: IDisposable
{
   using(value) { return callback(val); }
}

типичное использование, ну например так:
var fileSize = new FileStream(...).Using(stream => stream.Length);


как тут возможна утечка ?
Re[4]: [C# 7] Design notes, Mar 18
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, AndrewVK, Вы писали:


AVK>>Не?

S>
S>static TReturn Using<TValue, TReturn>(Func<TValue> val, Func<TValue, TReturn> callback) {...}
S>

S>тогда уж.

S>Иначе первый же залетевший дятел одно исключение — и утёкший ресурс

А можно пояснить ??
Вот есть метод
static TReturn Using<TValue, TReturn>(this TValue val, Func<TValue, TReturn> callback) where TValue: IDisposable
{
   using(val) { return callback(val); }
}

типичное использование, ну например так:
var fileSize = new FileStream(...).Using(stream => stream.Length);


как тут возможна утечка ?