Würde jemand wissen, warum der folgende Code einen internen L2095-Fehler auslöst?Warum wirft die Deklaration eines TDictionary mit einem Typ als Schlüssel einen internen L2095-Fehler?
Anscheinend hat der Compiler ein Problem mit dem Schlüssel des Wörterbuchs, das ein Klassentyp ist.
Wer kennt einen Workaround?
(PS: der Fehler nicht ausgelöst wird, wenn ich nicht enthalten den TestDict := TDictTest.Create;
Teil oder wenn der Schlüssel ist etwas anderes als ein Klasse-Typ)
TTestClass = class
end;
TTypeOfTestClass = type of TTestClass;
TDictTest = TDictionary<TTypeOfTestClass,Integer>;
var
TestDict: TDictTest;
implementation
initialization
TestDict := TDictTest.Create;
TestDict.Free
hinzugefügt nach der Antwort der:
Anscheinend geht es darum, dass ich "" statt "class of
" instinktiv benutzt habe. "Type of
" wird vom Compiler akzeptiert, daher die Verwirrung. Ein Verweis auf eine Frage zu diesem Thema: What "type of" declaration represents in Delphi and how can it be used
Ich hätte in der Tat "Klasse von" verwendet! Ich mache es in anderen Teilen meines Codes, aber aus irgendeinem Grund habe ich diesmal "type of" verwendet und es komischerweise komischerweise kompiliert. Es scheint überall akzeptiert zu sein, außer in der TDictionary-Deklaration. Ungerade. Aber danke! – Domus