Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 29284|Odpověď: 1

[Zdroj] Úvod do C# delegátů (delegovat, akce, func, predikat)

[Kopírovat odkaz]
Zveřejněno 09.04.2018 14:57:15 | | |

Delegát je třída, která definuje typ metody tak, aby ji bylo možné předat jako argument jiné metodě. Událost je zvláštní zakázka.

1. Prohlášení o svěření

(1). delegovat

        Delegát

   Delegát má alespoň 0 parametrů a maximálně 32 parametrů, a nemůže mít žádnou návratovou hodnotu ani specifikovat typ vrácené hodnoty.

   Například veřejný delegát int MethodtDelegate(int x, int y); Označuje, že existují dva parametry a vrací typ int.

(2). Akce

       Akce je obecný delegát bez návratové hodnoty.

Akce reprezentuje delegáta bez parametrů a bez návratové hodnoty

Action<int,string> označuje delegáta s příchozím parametrem int a bez návratové hodnoty řetězce

  Action<int,string,bool> označuje delegáta s příchozími parametry int,string,bool bez návratových hodnot

       Akce<int,int,int,int> znamená, že jsou předány 4 parametry typu int a neexistuje žádná vrácená hodnota

Akce má alespoň 0 parametrů a maximálně 16 parametrů, bez návratové hodnoty.

Příklad:



(3). Func

Func je generický delegát s návratovou hodnotou

Func<int> znamená delegáta bez parametrů a vrací hodnotu int

Func<object,string,int> reprezentuje delegáta s příchozím parametrem jako objektem a řetězec vrací hodnotu int

Func<object,string,int> reprezentuje delegáta s příchozím parametrem jako objektem a řetězec vrací hodnotu int

Func<T1,T2,T3,int> představuje delegáta s příchozími parametry T1, T2, ,T3 (obecné), které vrací hodnotu int

Func má alespoň 0 parametrů a maximálně 16 parametrů, které se vrací podle generické vrácené hodnoty. Musí existovat návratová hodnota, ne neplatná


Příklad:




(4) .predikát

Predikát je generický delegát, který vrací typ boolu

Predikát<int> reprezentuje delegáta s příchozím parametrem int vrací bool

Predikát má a pouze jeden parametr a vrácená hodnota je pevně daná na bool

Příklad:







Předchozí:rabbitMQ Queue Queue Persistence zprávy [se zdrojovým kódem]
Další:Shrnutí informací o ActiveMQ a RabbitMQ
Zveřejněno 17.12.2019 19:42:23 |
Mám otázku. Napsal jsem příliš mnoho js a zvykl jsem si na funkce callbacku.

Pak byl Func použit jako parametr. A tento Func chci spustit asynchronně. Pokud najdete nějaké odpovědi, můžete Func zadat do Task.Run
Rychle změnil ID vlákna.

A já jsem s humorem použil Func<string,Task<string>> abych mohl počkat přímo na funkci, ale zjistil jsem, že vlastně nezměnil ID vlákna.
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com