pascalabcnet/TestSuite/generics29.pas

27 lines
653 B
ObjectPascal
Raw Permalink Normal View History

2019-07-14 19:59:07 +03:00
function DQNToNullable<T>(v: T): System.Nullable<T>; where T: record;
begin
Result := new System.Nullable<T>(v);
end;
type TClass = class
function DQNToNullable<T>(v: T): System.Nullable<T>; where T: record;
begin
Result := new System.Nullable<T>(v);
end;
end;
type TClass2 = class
static function DQNToNullable<T>(v: T): System.Nullable<T>; where T: record;
begin
Result := new System.Nullable<T>(v);
end;
end;
begin
var x := DQNToNullable(2);
assert(x.Value = 2);
assert(DQNToNullable(2).Value = 2);
var o := new TClass;;
assert(o.DQNToNullable(3).Value = 3);
assert(TClass2.DQNToNullable(3).Value = 3);
end.