mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-06 07:12:45 +02:00
35 lines
505 B
ObjectPascal
35 lines
505 B
ObjectPascal
program TGeneric2;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
type
|
|
|
|
{ TMyList }
|
|
|
|
generic TMyList<T> = class(TObject)
|
|
data : T;
|
|
procedure SetData(item: T);
|
|
end;
|
|
|
|
procedure TMyList.SetData(item: T);
|
|
var
|
|
i : integer;
|
|
begin
|
|
{$IFDEF TestWrongType}
|
|
{ The next line should fail for TList(string) }
|
|
i:=item;
|
|
{$ENDIF}
|
|
data:=item;
|
|
end;
|
|
|
|
type
|
|
TMyStringList = specialize TMyList<string>;
|
|
|
|
var
|
|
slist : TMyStringList;
|
|
begin
|
|
slist := TMyStringList.Create;
|
|
slist.SetData('Test');
|
|
writeln(slist.data);
|
|
end.
|