Здравствуйте, #John, Вы писали:
J>Здравствуйте,
J>почему передавать так делегат в функцию плохой тон?
J>J>class BaseClass
J>{
J> protected virtual async Task<Foo> Bar(int x, Func<Foo, Task<int>> func)
J> {
J> ...
J> using(var context = new AmbientContext(x))
J> {
J> var foo = context.Foo;
J> var result= await func(foo);
J> context.Save(smth);
J> return foo;
J> }
J> }
J>
Потому что это может быть что угодно, что при открытом контексте с бд не очень здорово. Т.е. какой-то сложный алгоритм,
Thread.Sleep, task.delay и т.д. Т.е. лучше передавать результат работы делегата\задачи, а не саму задачу.