我有这个高峰来测试TPair.您可以在新的Delphi XE Console-app上复制+粘贴.我用例外标记了这一行:
项目Project1.exe引发异常类EAccessViolation,并在模块'Project1.exe'中显示消息'地址为0045042D的访问冲突'.读取地址A9032D0C.
任何的想法 ?
谢谢.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Generics.Defaults,
Generics.Collections;
type
TProduct = class
private
FName: string;
procedure SetName(const Value: string);
published
public
property Name: string read FName write SetName;
end;
type
TListOfProducts = TObjectDictionary<TProduct, Integer>;
{ TProduct }
procedure TProduct.SetName(const Value: string);
begin
FName := Value;
end;
var
MyDict: TListOfProducts;
MyProduct1: TProduct;
MyProduct2: TProduct;
MyProduct3: TProduct;
APair: TPair<TProduct, Integer>;
aKey: string;
begin
try
MyDict := TListOfProducts.Create([doOwnsKeys]);
MyProduct1 := TProduct.Create;
MyProduct1.Name := 'P1';
MyProduct2 := …Run Code Online (Sandbox Code Playgroud)