type
TMyBaseClass = class
end;TMyClass1 = class(TMyBaseClass)
end;TMyClass2 = class(TMyBaseClass)
end;const
MyClassList : array [0..1] of TMyBaseClass = (
TMyClass1,
TMyClass2); // 这样是错误的const
MyClassList : array [0..1] of TClass = (
TMyClass1,
TMyClass2); // 这样才可以我只是想利用一下基类。为什么不可以?
TMyBaseClass = class
end;TMyClass1 = class(TMyBaseClass)
end;TMyClass2 = class(TMyBaseClass)
end;const
MyClassList : array [0..1] of TMyBaseClass = (
TMyClass1,
TMyClass2); // 这样是错误的const
MyClassList : array [0..1] of TClass = (
TMyClass1,
TMyClass2); // 这样才可以我只是想利用一下基类。为什么不可以?
const
MyClassList : array [0..1] of TMyBaseClassClass = (
TMyClass1,
TMyClass2); // 这样ok
我操~!
TMyClass = class of TMyBaseClassconst
MyClassList : array [0..1] of TMyClass = (
TMyClass1,
TMyClass2);
Mark 下 有待研究
Class of 是类引用, Class是类,两者是有区别的.
以下是一段基础说明:
有时业务上执行一个类本身,而不是实例
一类(即对象)。这种情况发生,例如,当您调用
构造方法使用一个类的引用。你总是可以指一个特定的
类使用它的名字,但有时有必要声明变量或
作为参数值班,在这种情况下你需要
类引用类型。
本人正学习,因为本人也有这样的疑问。。
为什么,这篇文章的数组要用常量呢?
数据类型好像只能是系统默认的
TMyBaseClassClass = class of TMyBaseClass;//定义了数据类型
const
MyClassList : array [0..1] of TMyBaseClassClass //当然是正确的MyClassList : array [0..1] of TMyBaseClass //是类而不是数据类型
还是有区别的吧,没有无缘无故的错
TMyBaseClassClass = class of TMyBaseClass;const
MyClassList:array [0..1] of TMyBaseClassClass;
類:
MyClassList:array [0..1] of TMyBaseClass;
LZ定义的类名也怪怪的,按VCL类命名规则,LZ定义的TMyBaseClass像元类一样,一般都是TMyBase
还是不明白 >.<;;