Sobes.tech
Junior — Middle

Программалоодо делегаттар жана окуялар механизмдери ортосунда кандай байланыс бар?

sobes.tech AI

AIден жооп

C# тилде делегаттар жана окуялар тыгыз байланышта жана кайтаруу чакыруулар механизмдери жана окуяларга жазылуу үчүн колдонулат.

  • Делегат: белгилүү бир колтамга ээ ыкманын шилтемесин көрсөтүүчү түр. Делегаттар динамикалык түрдө ыкмаларды сактоого жана чакырууга мүмкүндүк берет.

  • Окуя: делегаттарга негизделген атайын механизм, ал объекттерге белгилүү аракеттердин болушу жөнүндө кабардар болууга жазылууга мүмкүндүк берет.

Байланыш:

  • Окуя делегаттын негизинде жарыяланат, башкача айтканда, окуя делегаттын үстүндө "капка" болуп, ыкмаларды чакырууга кирүүгө чектөө коюлган (тек гана класста, анда окуя жарыяланган).

  • Окуя болуп өткөндө, класста делегат чакырылат, ал бардык жазылгандарды (окуя иштеткичтерин) чакырат.

Мисал:

public delegate void Notify(string message);

public class Publisher
{
    public event Notify OnNotify;

    public void RaiseEvent()
    {
        OnNotify?.Invoke("Окуя болду");
    }
}

public class Subscriber
{
    public void HandleNotification(string msg)
    {
        Console.WriteLine(msg);
    }
}

// Колдонуу:
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.OnNotify += sub.HandleNotification;
pub.RaiseEvent(); // Чыгуу: Окуя болду

Ушул жол менен делегаттар окуялардын негизги элементтери болуп саналат жана окуя болуп өткөндө жазылгандар чакырылат.