加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 基于具体类型的泛型类的条件行为

发布时间:2020-12-15 10:10:16 所属栏目:大数据 来源:网络整理
导读:由于我从 yesterday提出的问题可能还不完全清楚,我没有得到我想要的答案,所以我会尽量用更为一般的方式来制定: 有没有办法根据实例化的泛型类型的实际类型来实现特殊行为,使用Explicit条件语句或使用某种专业化?伪代码: TGenericType T = class function
由于我从 yesterday提出的问题可能还不完全清楚,我没有得到我想要的答案,所以我会尽量用更为一般的方式来制定:

有没有办法根据实例化的泛型类型的实际类型来实现特殊行为,使用Explicit条件语句或使用某种专业化?伪代码:

TGenericType <T> = class
  function Func : Integer;
end;
...
function TGenericType <T>.Func : Integer;
begin
  if (T = String) then Exit (0);
  if (T is class) then Exit (1);
end;
...
function TGenericType <T : class>.Func : Integer;
begin
Result := 1;
end;
function TGenericType <String>.Func : Integer;
begin
Result := 0;
end;

解决方法

您可以通过使用TypeInfo(T)= TypeInfo(string)来回退到RTTI.要测试某些东西是一个类,可以使用像PTypeInfo(TypeInfo(T))^.Kind = tkClass这样的东西.

PTypeInfo类型和tkClass枚举成员在TypInfo单元中定义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读