Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

E2089 Invalid typecast


Вопрошающий ©   (2013-12-30 15:00:00) 

Не подскажите в чем ошибка?

function TMyClass.FindChild<T>(AClass: TClass): TArray<T>;
var
 i: integer;
begin
 Result := nil;
 for i := 0 to FChilds.Count - 1 do
   if FChilds[i] is AClass then
   begin
     SetLength(Result, length(Result) + 1);
     Result[length(Result) - 1] := T(FChilds[i]);
   end;
end;


[dcc32 Error] myPas.pas(3749): E2089 Invalid typecast (на выделенной строке)

XE5 (x32)


Inovet   (2013-12-30 18:00:00) [1]

> [3] Вопрошающий   (30.12.13 16:04)
> * Привидение для того

Привидение для того, чтобы летать с мотором.


Вопрошающий   (2013-12-30 16:06:00) [2]

Прокатило, когда в объявлении указал вместо этого:
function FindChild<T>(AClass: TClass): TArray<T>;

Это
function FindChild<T: class>(AClass: TClass): TArray<T>;

хм...


Вопрошающий   (2013-12-30 16:04:00) [3]

* Привидение для того


Вопрошающий   (2013-12-30 15:20:00) [4]

FChilds: Generics.Collections.TList<TMyClassElement>;

Привидения для того чтобы не было Incompatible types: 'T' and 'TMyClassElement'


DVM   (2013-12-30 15:09:00) [5]

А зачем там приведение вообще? Что такое FChilds?


Наверх

Титульная страница Поиск, карта сайта Написать письмо