1. Нельзя использовать TObjectList с TPair просто потомк, что TPair это record, а не class:
https://docwiki.embarcadero.com/Libr...lections.TPair
2. Нет, ты не создаешь экзмепляр класса TComparison, бо как это не класс, а ссылка на функцию:
https://docwiki.embarcadero.com/Libr...ts.TComparison
А имени у нее нет, т.к. это одно из нововведений последних версий - анонимная функция.
Для простоты понимания шаблонов (или дженериков) просто представь, что компилятор сгенерирует соотв. код для каждого использованного щаблона.
Например, у тебя есть такой код:
Код:
var
A : TPair<Integer,Integer>;
B : TPair<String,String>;
А вот когда компилятор начнет это компилировать, то построит вот примерно что-то типа такого:
Код:
type
TPairA = record
Key : Integer;
Valuie : Integer;
endl
TPairB = record
Key : String;
Value : String;
end;
var
A : TPairA;
B : TPairB;
ЗЫ. Естественно, это упрощение. но для понимания свмое оно.