Описание языка «PascalABC.NET».

Операторы += и -= для процедурных переменных.

Оператор присваивания += предназначен для присоединения к процедурной переменной процедуры, оператор присваивания -= - для отсоединения. Подпрограммы вызываются в порядке присоединения. Например:

Procedure mult2(var r: real); Begin. R := 2 * r; End; Procedure add3(var r: real); Begin. R := r + 3; End; Var. P: procedure (var x: real); R: real; Begin. R := 1; P := mult2; P += add3; P(r); // r := 2 * r; r := r + 3; P -= mult2; P(r); // r := r + 3; End.

Отсоединение не присоединенных подпрограмм не выполняет никаких действий.

Кроме того, к процедурной переменной можно прикреплять/откреплять статические и экземплярные методы классов. Пример см. в теме процедурные переменные.

Операторы += и -= используются также для добавления/удаления обработчиков для событий .NET. Например:

Procedure OnTimer1(sender: object; e: System.Timers.ElapsedEventArgs); Begin. Write(1); End; Begin. var Timer1 := new System.Timers.Timer(1000); Timer1.Elapsed += OnTimer1; Timer1.Start; while True do. Sleep(1000); End.