📄 testgenericoperatoris.out
字号:
program TestGenericOperatorIs;
{$APPTYPE CONSOLE}
{ AFS December 2007
This code compiles, but is not semantically meaningfull.
It is test cases for the code-formating utility
Test new generics syntax - code from TridenT
}
uses
SysUtils,
Classes;
type
MaClasse<T> = class
unchamp: T;
procedure Test<X>;
procedure Test2<X>;
procedure Test3<X:
constructor>;
end;
NullInteger = System.Nullable<integer>;
procedure MaClasse<T>.Test<X>;
var
Variable: X;
begin
Writeln;
Write(#9 + 'Le test sur X<', Typeof(X), '> is T<', typeof(T), '> est ');
if TObject(Variable) is T then
writeln('Vrai')
else
writeln('Faux');
if assigned(TObject(Variable)) then
writeln(#9 + 'assigned(Variable) =Vrai')
else
writeln(#9 + 'assigned(Variable)=Faux');
end;
procedure MaClasse<T>.Test2<X>;
var
Variable: X;
begin
{ ne change rien au test}
if assigned(TObject(Variable)) then
Variable := Default(X);
Writeln;
Write(#9 + 'Le test sur X<', Typeof(X), '> is T<', typeof(T), '> est ');
if TObject(Variable) is T then
writeln('Vrai')
else
writeln('Faux');
end;
procedure MaClasse<T>.Test3<X>;
var
Variable: X;
begin
Writeln;
Write(#9 + 'Le test sur X<', Typeof(X), '> is T<', typeof(T), '> est ');
Variable := X.Create;
if TObject(Variable) is T then
writeln('Vrai')
else
writeln('Faux');
if assigned(TObject(Variable)) then
writeln(#9 + 'assigned(Variable) =Vrai')
else
writeln(#9 + 'assigned(Variable)=Faux');
end;
procedure Test(Resultat: boolean);
begin
if Resultat then
writeln('Vrai')
else
writeln('Faux');
end;
var
Classe1: MaClasse<TObject>;
Classe2: MaClasse<System.Nullable<integer>>;
Classe3: MaClasse<integer>;
VarNull: NullInteger;
Objet: TObject;
int: integer;
begin
try
//Les commentaires en anglais proviennent des spec du C# 2.0
//If the type of e is a reference type or a nullable type and the value of e is null, the result is false.
// Sous Delphi ce test est toujours vrai
Writeln('Test pour la variable varNull = null');
varNull := Default(System.Nullable<integer>);
Test(varNull is NullInteger);
varNull := 10;
Test(varNull is NullInteger);
Writeln('Test pour la variable Objet
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -