📄 testgenericmethods1.obs
字号:
program testgenericmethods1;{$APPTYPE CONSOLE}uses sysutils;type tgenerictype<anytype
> =class fdata:anytype;function getdata:anytype;procedure unemethodegenerique<anytype
>(variable:anytype);function unefonctiongenerique<anytype>:anytype;procedure setdata
(value:anytype);property data:anytype read getdata write setdata;end;function tgenerictype
<anytype>.getdata:anytype;begin result:=fdata;end;procedure tgenerictype<anytype>
.setdata(value:anytype);begin fdata:=value;end;procedure tgenerictype<anytype>.unemethodegenerique
<anytype>(variable:anytype);begin variable:=default(anytype);writeln(tobject(variable
).classname);writeln('Default pour AnyType=',tobject(variable).classname,'=',tobject
(variable));writeln(tobject(variable).classname);end;function tgenerictype<anytype
>.unefonctiongenerique<anytype>:anytype;var variable:anytype;begin variable:=default
(anytype);writeln(tobject(variable).classname);writeln('Default pour AnyType=',tobject
(variable).classname,'=',tobject(variable));result:=variable;end;type tgenerictypeint
=tgenerictype<integer>;tgenerictypeboolean=tgenerictype<boolean>;var i:tgenerictypeint
;b:tgenerictypeboolean;begin try i:=tgenerictypeint.create;i.data:=100;i.unemethodegenerique
(i.data);b:=tgenerictypeboolean.create;b.data:=true;b.unemethodegenerique(b.data)
;b.unemethodegenerique<integer>(i.data);readln;except on e:exception do writeln(e
.classname,': ',e.message);end;end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -