Откажитесь от подписки анонимный метод в C#

>>> from functools import partial
>>> bound_func = partial(range, 0, 10)
>>> bound_func()
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> bound_func(2)
[0, 2, 4, 6, 8]

не действительно скрытая функция, но неравнодушный чрезвычайно полезна для того, чтобы иметь поздно оценку функций.

можно связать столько или так мало параметров в начальном вызове частичного Вы хотите и называете его с любыми остающимися параметрами позже (в этом примере, я обязал начинание/заканчивание args располагаться, но назвать его вторым разом с аргументом шага)

См. документация .

213
задан Eric 8 October 2008 в 04:24
поделиться

2 ответа

В версии 3.0 можно сократить до:

MyHandler myDelegate = ()=>Console.WriteLine("I did it!");
MyEvent += myDelegate;
...
MyEvent -= myDelegate;
16
ответ дан 23 November 2019 в 04:27
поделиться

Если вы хотите иметь возможность контролировать отказ от подписки, вам нужно пойти по маршруту, указанному в вашем принятом ответе. Однако, если вас просто беспокоит очистка ссылок, когда ваш класс подписки выходит за пределы области видимости, тогда есть другое (слегка запутанное) решение, которое включает использование слабых ссылок. Я только что опубликовал вопрос и ответ по этой теме.

2
ответ дан 23 November 2019 в 04:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: