Re: Делегат как параметр, что не так с кодом.
От: Sharov Россия  
Дата: 20.04.21 16:03
Оценка:
Здравствуйте, #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 и т.д. Т.е. лучше передавать результат работы делегата\задачи, а не саму задачу.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.