- Повторите концепцию обратного вызова
Если у вас нет четкой концепции обратного вызова, вам следует прочитать статью о Обратный вызов в javascript, которую я написал.
2. Делегат на C #
Здесь, чтобы передать функцию GiveGift, мы должны использовать тип данных Delegate (указатель на функцию). Мы объявляем делегат в соответствии со следующим синтаксисом:
В C # делегаты часто используются вместе с событиями. Разработчики Winform не странно используют код, который вызывает это событие:
Эта статья ориентирована только на делегатов, поэтому вы можете узнать больше о делегатах и мероприятиях на других страницах.
3. Action, Predicate, Func в C #
В этом разделе я хотел бы представить Action, Predicate, Func (сокращенно APF для быстрого) на C #. Как вы читали в классной серии статей о C #, разработчики Microsoft очень ленивы. Поэтому они всегда добавляют что-то на C #, поэтому наши разработчики такие же ленивые. На самом деле APF - это ленивый способ для нас объявлять делегатов.
Действие: действие ‹T in1, T in2,…›. Действие эквивалентно делегату с типом возврата void, in1, in2 - это полученные параметры.
Предикат: Предикат ‹T in›. Предикат эквивалентен делегату с возвращаемым типом bool, где print является входным параметром. Предикат может принимать только один параметр.
Func: Func ‹T in1, T in2,…, T result›. Функция эквивалентна делегату с возвращаемым типом, потому что мы объявляем (результат), in1, in2 - это полученные параметры. Func требуется для возврата значения, не может платить недействительно.
Для облегчения понимания см. Следующую таблицу. Вот таблица, в которой сравниваются объявления с делегатом, а также соответствующие объявления по Action, Predicate и Func:
Вы будете удивлены, узнав, что AFP в сочетании с лямбда-выражением и некоторыми другими вещами… создали «харизму» LINQ, без которой Java жаждет красных глаз, должен быть добавлен в Java SDK 8.
Я напишу о «харизме» LINQ в следующих статьях.
Не забудьте прочитать.