2013-04-22 3 views
6

Я хотел бы определить тип записи (тип псевдонима) для общей записи. Я хотел бы сделать это, чтобы пользователи устройства b могли иметь доступ к TMyGenericRecord без использования устройства a. У меня есть единицы, как это:Возможно ли создать псевдоним типа для общей записи в Delphi

unit a; 
interface 
type 
    TMyNormalRecord = record 
    Item: Integer; 
    end; 
    TMyGenericRecord<T> = record 
    Item: T; 
    end; 
implementation 
end. 

unit b; 
interface 
type 
    TMyNormalRecord = a.TMyNormalRecord; // works 
    TMyGenericRecord<T> = a.TMyGenericRecord<T>; // E2508 type parameters not allowed on this type 
implementation 
end. 

ответ

4

Простой ответ на вопрос о том, что язык не поддерживает общие псевдонимы типа.

only places where you can use generic parameters являются:

  1. Generic class, interface, record and array types или
  2. Generic procedural types или
  3. Generic methods.
+0

ОК, спасибо, что ответит. Жаль. Вероятно, для общих классов существует решение (с некоторыми проблемами, но существует решение) [Возможно ли создать псевдоним типа для универсального класса в Delphi] (http://www.stackoverflow.com/questions/10060009/is- it-possible-to-create-a-type-alias-to-the-generic-class-in-delphi? rq = 1) –

+1

@DanielAndrascik Там нет ничего, что я мог бы назвать решением. Все, что я вижу, это код, который все ухудшает! ;-) –

Смежные вопросы