pascalabcnet/InstallerSamples/LanguageFeatures/Pattern Matching/UserDefinedDeconstructAsExtension.pas
miks1965 987ab845e8 fix #1409
Разрешил перегруженные деконструкторы
2018-10-21 12:29:36 +03:00

20 lines
456 B
ObjectPascal

// Деконструктор как метод расширения
procedure Deconstruct(Self: integer; var a: integer; var b: integer); extensionmethod;
begin
a := Self div 10;
b := Self mod 10;
end;
begin
var i := 25;
if i is integer(var a, var b) then
Println(a,b);
i := 9;
match i with
integer(a,b) when i>=10: Println(a,b);
integer(a): Println(a); // деконструктор по умолчанию
end;
end.