Вопросы с тегом «anonymous-methods»

4
Есть ли причина для повторного использования C # переменной в foreach?
При использовании лямбда-выражений или анонимных методов в C # мы должны опасаться доступа к измененной ловушке замыкания . Например: foreach (var s in strings) { query = query.Where(i => i.Prop == s); // access to modified closure ... } Из-за измененного закрытия приведенный выше код приведет к тому, что все …

11
Отписаться анонимный метод в C #
Можно ли отписаться анонимным методом от события? Если я подпишусь на такое событие: void MyMethod() { Console.WriteLine("I did it!"); } MyEvent += MyMethod; Я могу отменить подписку, как это: MyEvent -= MyMethod; Но если я подпишусь, используя анонимный метод: MyEvent += delegate(){Console.WriteLine("I did it!");}; Можно ли отписаться от этого анонимного …


8
Анонимный метод в вызове Invoke
Возникли некоторые проблемы с синтаксисом, когда мы хотим анонимно вызвать делегата в Control.Invoke. Мы испробовали несколько разных подходов, но безуспешно. Например: myControl.Invoke(delegate() { MyMethod(this, new MyEventArgs(someParameter)); }); где someParameter является локальным для этого метода Вышеупомянутое приведет к ошибке компилятора: Невозможно преобразовать анонимный метод в тип System.Delegate, потому что это не …

5
Почему в C # анонимный метод не может содержать оператор yield?
Я подумал, что было бы неплохо сделать что-то вроде этого (с лямбдой, возвращающей yield): public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new() { IList<T> list = GetList<T>(); var fun = expression.Compile(); var items = () => { foreach (var item in list) if (fun.Invoke(item)) yield return item; // …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.