1
次のコードが内部L2095エラーをスローする理由は誰にも分かりますか?キーとしての型を持つTDictionaryの宣言が内部L2095エラーをスローするのはなぜですか?
明らかに、コンパイラには、辞書のキーがクラス型であるという問題があります。
回避策はありますか?
(PS:私はTestDict := TDictTest.Create;
部分を含むか、していないときにエラーがスローされていないキーは、クラス型以外のものであるとき):
TTestClass = class
end;
TTypeOfTestClass = type of TTestClass;
TDictTest = TDictionary<TTypeOfTestClass,Integer>;
var
TestDict: TDictTest;
implementation
initialization
TestDict := TDictTest.Create;
TestDict.Free
を追加しましたが答え後
明らかに、これは私が本来 "class of
"の代わりに "type of
"を使用していたことです。 "Type of
"はコンパイラによって受け入れられ、混乱します。 これに関する質問への参照:What "type of" declaration represents in Delphi and how can it be used
私は確かに "クラスの"を使用する必要があります!私はコードの他の部分でやっていますが、何らかの理由で今回は "タイプ"を使用しましたが、それは奇妙なことにコンパイルします。それはTDictionary宣言を除いてどこでも受け入れられるようです。奇妙なしかし、ありがとう! – Domus