1
아무도 왜 다음 코드가 내부 L2095 오류를 throw하는지 알 수 있습니까?타입이 키 인 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