泛型类型的大小 [英] Size of generic type
本文介绍了泛型类型的大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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屋!
查看全文