Запитання з тегом «anonymous-methods»

4
Чи є причина повторного використання змінної C # в передбаченні?
Під час використання лямбда-виразів або анонімних методів у 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)); }); де деякий Параметр є локальним для цього методу Вищезазначене призведе до помилки компілятора: Неможливо перетворити анонімний метод у тип "System.Delegate", оскільки це не тип …

5
Чому в C # анонімний метод не може містити оператор 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.