![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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?