Простые типы с дженериками в Delphi

Как я могу создать универсальный класс, только содержащий типы примитивов?

TField<T: xxx> = class  
private
    FValue: T;  
public  
    property Value: T read FValue write FValue;  
end;

Мне не нужны интерфейсы, классы, и т.д., я только хочу булевские переменные, ints, плавания и так далее...

Или существует другой способ сделать это?

Спасибо

6
задан 12 January 2010 в 10:52
поделиться

4 ответа

Вы можете использовать ключевое слово «Запись», чтобы ограничить типы значений (не ссылаться Типы):

TField<T: record> = class   
private 
    FValue: T;   
public   
    property Value: T read FValue write FValue;   
end;
7
ответ дан 10 December 2019 в 02:48
поделиться

Я не уверен, правильно ли я получаю ваш вопрос, но если вы хотите переменную, которая может удерживать разные примитивные типы данных, вы можете взглянуть на тип данных .

Вам не нужны дженерики для этого; -)

1
ответ дан 10 December 2019 в 02:48
поделиться

Если вы хотите ограничить типы, которые можно использовать для вашего универсального значения, вы не можете просто проверить действительные типы в создании?

0
ответ дан 10 December 2019 в 02:48
поделиться

Согласно Блог Craig Shuntz

Система типа Delphi / Win32 не укоренились (встроенные простые типы, записи, а классы не имеют Общий предок) и примитивные типы Не удается / не реализуйте интерфейсы

, поэтому, скорее всего, вы не можете ограничить общий класс к примитивным типам (в отличие от C #, который позволяет «где t: struct)

1
ответ дан 10 December 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: