Это своего рода продолжение моего другого вопроса .
Когда я впервые услышал о дженериках, это было до выхода Delphi 2009 (где они впервые его представили),Я знаю, что до этого она поддерживалась в .Net, но мне еще предстоит покопаться в этой области.
Читая об обобщениях, я узнал, что он позволяет классу иметь переменный аргумент и что бы вы ни оценивалипереданный ей будет заменен на весь код класса.
Способ описания дженериков (или, по крайней мере, то, что я понял, дженерики допускается) заключался в следующем объявлении:
procedure TMyClass<T>.Init;
begin
FField := T.Create(nil);
end;
Я предполагал, что это сработает.Я предположил, что компиляция не удастся выполнить следующим образом:
begin
TMyClass<TComponent>.Create; //Works correctly
TMyClass<TObject>.Create; //Doesn't work, as even though it HAS a constructor, it has none that receive a single pointer parameter
TMyClass<string>.Create; //Doesn't work, not an object.
end;
Теперь я хорошо знаю, что был неправ.Итак, что мне сейчас интересно, есть ли технология / языковая функция, которая бы поддерживала такую конструкцию.Шаблоны кода возможно?Дженерики на других языках программирования?Или может быть что-то еще?