📄 testgenericconstraints.out
字号:
program TestGenericConstraints;
{$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
Couleurs = (Rouge, Noir, Vert);
IMonInterface = interface
procedure FaitqqChose;
end;
TClasseMonInterface = class(TObject, IMonInterface)
procedure FaitqqChose;
end;
TEnregistrement = record //Record non g閚閞ique (peut impl閙enter des interfaces)
end;
TGenericEnregistrement<T> = record
//Record g閚閞ique, attend un param鑤re de type non contraint (de tout type)
Data: T;
end;
TGenericClass<R:record> = class
//Contrainte record sur une classe, attend un param鑤re de type d'un type valeur
Champ: R;
end;
TGenericRecord<C:class> = record
//Contrainte class sur un enregistrement, attend un param鑤re de type du type Classe
MaClasse: C;
end;
TGenericClass2<C:class> = class
//Contrainte class sur une classe , attend un param鑤re de type du type Classe
Valeur: C;
end;
TGenericRecord2<C:TList> = record
//Contrainte sur une classe anc阾re, attend un param鑤re de type du type TList et d関ir閑
MaClasse: C;
end;
TGenericRecord3<C:class,
constructor> = record //Les contraintes peuvent 阾re coupl閑s.
MaClasse: C;
end;
//TGenericClass2<U:TEnregistrement>=Class; //E2510 Le type TEnregistrementn'est pas une contrainte valide
//Pas d'h閞itage pour les record sous .NET. Un record est un type valeur
//TGenericClass2<U:TGenericClass<R:Record>>=Class // E2003: Identificateur non d閏lar
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -