Как я могу создать универсальный класс, только содержащий типы примитивов?
TField<T: xxx> = class
private
FValue: T;
public
property Value: T read FValue write FValue;
end;
Мне не нужны интерфейсы, классы, и т.д., я только хочу булевские переменные, ints, плавания и так далее...
Или существует другой способ сделать это?
Спасибо
Вы можете использовать ключевое слово «Запись», чтобы ограничить типы значений (не ссылаться Типы):
TField<T: record> = class
private
FValue: T;
public
property Value: T read FValue write FValue;
end;
Я не уверен, правильно ли я получаю ваш вопрос, но если вы хотите переменную, которая может удерживать разные примитивные типы данных, вы можете взглянуть на тип данных .
Вам не нужны дженерики для этого; -)
Если вы хотите ограничить типы, которые можно использовать для вашего универсального значения, вы не можете просто проверить действительные типы в создании?
Согласно Блог Craig Shuntz
Система типа Delphi / Win32 не укоренились (встроенные простые типы, записи, а классы не имеют Общий предок) и примитивные типы Не удается / не реализуйте интерфейсы
, поэтому, скорее всего, вы не можете ограничить общий класс к примитивным типам (в отличие от C #, который позволяет «где t: struct)