泛型类型的大小 [英] Size of generic type

查看:139
本文介绍了泛型类型的大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有什么方法可以确定类似于字节的大小:

  TItem< T> =记录
数据:T;
end;

我可以写一些类似于

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

或者可以借助专业化?

 函数TItem< String> .GetByteSize:Integer; 
begin
结果:= GetStringByteSize(Data)
end;

函数TItem< T> .GetByteSize:Integer;
begin
结果:= SizeOf(Data);
end;

谢谢!

解决方案

  SizeOf(TItem< string>) 

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

 函数TItem< T> .GetByteSize:Integer; 
begin
结果:= SizeOf(TItem< T>);
end;


Is there any way to determine the size in bytes of something like

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

Can I write something like

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

or perhaps with the help of specialization?

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

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

Thanks!

解决方案

Is there something wrong with taking the size of the instantiated type?

SizeOf(TItem<string>)

Or you could define GetByteSize like this:

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

这篇关于泛型类型的大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆