Показать сообщение отдельно
  #3  
Старый 23.05.2023, 02:32
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

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;
ЗЫ. Естественно, это упрощение. но для понимания свмое оно.
Ответить с цитированием