Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 29284|Отговор: 1

[Източник] Въведение в делегатите по C# (делегат, Действие, Функ, предикат)

[Копирай линк]
Публикувано в 9.04.2018 г. 14:57:15 ч. | | |

Делегат е клас, който дефинира типа метод, така че той да може да бъде прехвърлен като аргумент към друг метод. Събитието е специална поръчка.

1. Декларация за възлагане

(1). Делегат

        Делегат

   Делегатът има поне 0 параметъра и максимум 32 параметъра, и не може да има стойност за връщане или да задава тип възвръщаема стойност.

   Например, публичен делегат int MethodtDelegate(int x, int y); Показва, че има два параметъра, и връща int тип.

(2). Действие

       Action е универсален делегат без стойност за връщане.

Действието представлява делегат без параметри и без връщана стойност

Action<int,string> показва делегат с входящ параметър int и без връщаща стойност за низ

  Action<int,string,bool> показва делегат с входящи параметри int,string,bool без връщащи стойности

       Действие<int,int,int,int,int> означава, че има 4 int-тип параметъра, които са подадени и няма връщана стойност

Действието има поне 0 параметъра и максимум 16 параметъра, без връщаща стойност.

Пример:



(3). Функ

Func е универсален делегат с връщана стойност

Func<int> означава делегат без параметри и връща int стойност

Func<object,string,int> представлява делегат с входящия параметър като обект, а низът връща int стойност

Func<object,string,int> представлява делегат с входящия параметър като обект, а низът връща int стойност

Func<T1,T2,,T3,int> представлява делегат с входящия параметър T1, T2, ,T3 (генеричен), връщащ int стойност

Func има поне 0 параметъра и максимум 16 параметъра, които се връщат според генеричната стойност на връщането. Трябва да има възвръщаема стойност, а не void


Пример:




(4) .предикат

Предикат е общ делегат, който връща bool тип

<int> предикат представлява делегат с входящия параметър int, връщащ bool

Предикатът има само един параметър, а връщаната стойност е фиксирана на bool

Пример:







Предишен:rabbitMQ Опашка за опашка Запазване на съобщенията [с изходен код]
Следващ:Обобщение на информацията за ActiveMQ и RabbitMQ
Публикувано в 17.12.2019 г. 19:42:23 ч. |
Имам въпрос. Писах твърде много js и свикнах с функциите за обратно извикване.

След това Func беше използван като параметър. А този Func искам да изпълня асинхронно. Ако намерите отговори, можете да поставите Func в Task.Run
Бързо смени ID-то на нишката.

И аз игриво използвах Func<string, Task<string>> за да изчакам функцията директно, но установих, че той всъщност не смени id-а на нишката.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com