RAD Studio 10.2.3 测试√
- 对于这些关系,用我自己的理解,可以说成下面的关系:(不能肯定我理解是对的,也希望大佬可以指点指点)
- TClassRef = class of TXiaoyin; 用我的话来解释就是 老父亲的孩子是老父亲的一部分
- 好比:
TXiaoYin 代表 某家庭中的老父亲【可以明确的知道老父亲是谁】
TClassRef 代表 某家庭中老父亲的所有孩子【这是泛指不能确定,只知道是这个老父亲的孩子】
TXiaoYin1 代表 某家庭中老父亲的第一个孩子【可以明确的知道这个孩子是谁】
TXiaoYin2 代表 某家庭中老父亲的第二个孩子【可以明确的知道这个孩子是谁】- mGetClassName()相当于叫名字的机器【里面的参数是名字库的范围 – 老父亲的孩子(包含老父亲de名字)】
代码部分
// TTest1 写不写都可以,不影响的
TXiaoYin = class(TTest1)
end;
// 如果使用 TClassRef 作为参数,那么在使用方法或过程的时候只需要传入一个类,而不是实体【就是初始化后的】
TClassRef = class of TXiaoyin;
TXiaoYin1 = class(TXiaoYin)
end;
TXiaoYin2 = class(TXiaoYin)
end;
procedure TForm_Class.Button_class_ofClick(Sender: TObject);
procedure mGetClassName(AClass: TClassRef);
begin
Form_Class.Memo_Log.Lines.Add(AClass.ClassName);
end;
begin
mGetClassName(TXiaoYin);
mGetClassName(TXiaoYin1);
mGetClassName(TXiaoYin2);
end;
运行结果
一点点笔记,以便以后翻阅。