Sobes.tech
Junior — Middle

Kas saaks nimetada peamisi delegaadi tüüpe, mida programmeerimiskeeles kasutatakse?

sobes.tech AI

Vastus AI-lt

C# keeles on delegaadid tüübid, mis esindavad viiteid meetoditele kindla signatuuriga. Peamised delegaadi tüübid:

  • Ühekohalised delegaadid (Single-cast delegates) — viitavad ühele meetodile.
  • Multikast delegaadid (Multicast delegates) — võivad sisaldada nimekirja meetoditest, mida kutsutakse järjestikku.

Lisaks on olemas standardseid ülddelegaadid:

  • Action — delegaat, mis esindab meetodit ilma tagastusarvuta ja 0 või rohkemate parameetritega.
  • Func<TResult> ja Func<T1, TResult> ning teised — delegaadid, mis tagastavad väärtuse ja võivad võtta parameetreid.
  • Predicate<T> — delegaat, mis võtab ühe parameetri ja tagastab bool.

Näide delegaadi deklaratsioonist ja kasutamisest:

public delegate int Operation(int x, int y);

Operation add = (a, b) => a + b;
int tulemus = add(3, 4); // 7

Multikast delegaat:

Operation op = add;
op += (a, b) => a * b;

foreach (Operation del in op.GetInvocationList()) {
    Console.WriteLine(del(3, 4));
}

Seega on peamised delegaadi tüübid: ühe sihtmärgiga, mitme sihtmärgiga ning samuti standardsed ülddelegaadid Action, Func ja Predicate.