Programmēšana

Kā strādāt ar Action, Func un Predicate delegātiem C #

Delegāts ir droša tipa funkciju rādītājs, kas var atsaukties uz metodi, kurai ir tāds pats paraksts kā delegātam. Delegāti tiek izmantoti, lai definētu atzvanīšanas metodes un ieviestu notikumu apstrādi, un tie tiek deklarēti, izmantojot atslēgvārdu “delegate”. Jūs varat pasludināt delegātu, kurš var parādīties pats vai pat ligzdot klases iekšienē.

Kas ir Func un Action delegāti? Kā tos var izmantot?

Pamata atšķirība starp Func un Action delegātiem ir tāda, ka, lai gan pirmais tiek izmantots delegātiem, kuriem ir atgriešanās vērtība, pēdējos var izmantot tiem delegātiem, kuriem jums nav atgriešanās vērtības.

Func ir delegāts, kurš norāda uz metodi, kas pieņem vienu vai vairākus argumentus un atgriež vērtību. Darbība ir delegāts, kurš norāda uz metodi, kas savukārt pieņem vienu vai vairākus argumentus, bet neatgriež vērtību. Citiem vārdiem sakot, jums jāizmanto darbība, kad jūsu pārstāvis norāda uz metodi, kas atgriež spēku.

Predikāts ir delegāts, kurš pieņem vienu vai vairākus vispārīgus parametrus un atgriež Būla vērtību - jūs varat pieņemt, ka tas ir kaut kas līdzīgs Func. Iepriekšējie delegāti parasti tiek izmantoti, lai veiktu meklēšanas darbības ar dažiem datiem, pamatojoties uz kritēriju kopumu.

Programmēšanas darbības delegāti C #

Varat izmantot C # delegātu priekšrocības, lai ieviestu pasākumus un atzvanīšanas metodes. Delegāts C # ir līdzīgs C ++ funkciju rādītājiem, taču C # delegāti ir tipam droši. Jūs varat nodot metodes kā parametrus delegātam, lai ļautu delegātam norādīt uz metodi.

Šis koda fragments ilustrē darbību delegāta izmantošanas sintaksi.

Darbība

Šis kodu saraksts parāda, kā jūs varat izmantot darbību delegātu. Šis koda fragments, izpildot, izdrukās vārdu “Sveiki !!!” konsoles logā.

static void Main (virkne [] args)

        {

Darbības darbība = jauna darbība (displejs);

darbība ("Labdien !!!");

Konsole. Lasīt ();

        }

static void Display (virknes ziņojums)

        {

Console.WriteLine (ziņojums);

        }

Programmējot Func delegātus C #

Tagad sapratīsim, kā mēs varam strādāt ar Func delegātiem C #. Šeit ir Func delegāta sintakse.

Func

Šis koda fragments ilustrē, kā jūs varat izmantot Func delegātu C #. Tajā tiek izdrukāta Hra vērtība (aprēķināta kā 40% no pamatalgas). Pamatalga tiek tai nodota kā arguments.

static void Main (virkne [] args)

        {

Func func = jauns Func (CalculateHra);

Console.WriteLine (func (50000));

Konsole. Lasīt ();

        }

statisks dubultā CalculateHra (int pamata)

        {

atgriešanās (dubultā) (pamata *, 4);

        }

Ņemiet vērā, ka otrais parametrs Func delegāta deklarācijā iepriekš sniegtajā koda fragmentā norāda metodes atgriešanas veidu, uz kuru norādīs delegāts. Šajā piemērā aprēķinātā Hra vērtība tiek atgriezta kā dubultā.

Programmēt delegātus C #

Predikāta pārstāvis parasti tiek izmantots, lai meklētu vienumus krājumā vai datu kopā. Šeit ir Predikāta delegāta sintakse.

Paredzēt

Ņemiet vērā, ka Predicate principā ir līdzvērtīgs Func.

Apsveriet šādu vienību klasi ar nosaukumu Klients.

klases Klients

    {

public int Id {get; komplekts; }

publiskā virkne FirstName {get; komplekts; }

publiskā virkne Uzvārds {get; komplekts; }

publiska virkne Adrese {get; komplekts; }

publiskā virkne Pilsēta {get; komplekts; }

public string State {get; komplekts; }

publiskā virkne Valsts {get; komplekts; }

    }

Pēc tam izveidojiet klientu sarakstu un saglabājiet tajā klienta tipa objektus.

 Saraksts custList = jauns saraksts ();

custList.Add (jauns klients {Id = 1, Vārds = "Joydip", Uzvārds = "Kanjilal", Valsts = "Telengana", Pilsēta = "Hyderabad", Adrese = "Begumpet", Valsts = "Indija"});

custList.Add (jauns klients {Id = 2, Vārds = "Stīvs", Uzvārds = "Džonss", Štats = "OA", Pilsēta = "Ņujorka", Adrese = "Ezera avēnija", Valsts = "ASV"}) ;

Šis ir pilnīgs kodu saraksts, kas parāda, kā mēs varam izmantot Predicate delegātu datu meklēšanai.

static void Main (virkne [] args)

        {

Saraksts custList = jauns saraksts ();

custList.Add (jauns klients {Id = 1, Vārds = "Joydip", Uzvārds = "Kanjilal", Valsts = "Telengana", Pilsēta = "Hyderabad", Adrese = "Begumpet", Valsts = "Indija"});

custList.Add (jauns klients {Id = 2, Vārds = "Stīvs", Uzvārds = "Džonss", Štats = "OA", Pilsēta = "Ņujorka", Adrese = "Ezera avēnija", Valsts = "ASV"}) ;

Paredzēt hidrauliskos klientus = x => x.Id == 1;

Klienta klients = custList.Find (hydCustomers);

Console.WriteLine (customer.FirstName);

Konsole. Lasīt ();

        }

Kad iepriekšējais koda fragments ir izpildīts, konsoles logā tiks parādīts nosaukums “Joydip”.

Kā izdarīt vairāk C #:

  • Kad izmantot abstraktu klasi un saskarni C #
  • Kā strādāt ar AutoMapper C #
  • Kā lietot lambda izteicienus C #
  • Kā strādāt ar Action, Func un Predicate delegātiem C #
  • Kā strādāt ar delegātiem C #
  • Kā ieviest vienkāršu reģistrētāju C #
  • Kā strādāt ar atribūtiem C #
  • Kā strādāt ar log4net C #
  • Kā ieviest krātuves dizaina modeli C #
  • Kā strādāt ar refleksiju C #
  • Kā strādāt ar filesystemwatcher C #
  • Kā veikt slinku inicializāciju C #
  • Kā strādāt ar MSMQ C #
  • Kā strādāt ar paplašināšanas metodēm C #
  • Kā mums izteikt lambda izteicienus C #
  • Kad lietot svārstīgo atslēgvārdu C #
  • Kā izmantot ienesīguma atslēgvārdu C #
  • Kā ieviest polimorfismu C #
  • Kā izveidot savu uzdevumu plānotāju C #
  • Kā strādāt ar RabbitMQ C #
  • Kā strādāt ar dubultošanos C #
  • Virtuālu un abstraktu metožu izpēte C #
$config[zx-auto] not found$config[zx-overlay] not found