4

有什么方法可以确定类似的大小(以字节为单位)

TItem <T> = record
  Data : T;
end;

我可以写类似的东西吗

function TItem <T>.GetByteSize : Integer;
begin
if (T = String) then
  Result := GetStringByteSize (Data as String)
else
  Result := SizeOf (Data);
end;

或者也许在专业化的帮助下?

function TItem <String>.GetByteSize : Integer;
begin
  Result := GetStringByteSize (Data)
end;

function TItem <T>.GetByteSize : Integer;
begin
  Result := SizeOf (Data);
end;

谢谢!

4

2 回答 2

4

取实例化类型的大小有什么问题吗?

SizeOf(TItem<string>)

或者您可以像这样定义 GetByteSize:

function TItem <T>.GetByteSize : Integer;
begin
  Result := SizeOf(TItem<T>);
end;
于 2009-04-29T12:44:47.700 回答
0

不,据我所知,您不能根据类型进行专业化

于 2009-04-29T12:15:59.860 回答