Программалоодо делегаттар жана окуялар механизмдери ортосунда кандай байланыс бар?
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(); // Чыгуу: Окуя болду
Ушул жол менен делегаттар окуялардын негизги элементтери болуп саналат жана окуя болуп өткөндө жазылгандар чакырылат.