这是C#声明相当于delphi“class”(类的类型)?
发布时间:2020-12-15 17:36:49 所属栏目:百科 来源:网络整理
导读:在delphi中,我可以这样声明一个类的类 type TFooClass = class of TFoo; TFoo=class end; 这个声明的C#相当于哪个? 解决方法 C#中最接近的是Type类型,它包含有关类型的元数据. public class A { }public static int Main(string[] args){ Type b = typeof(A
在delphi中,我可以这样声明一个类的类
type TFooClass = class of TFoo; TFoo=class end; 这个声明的C#相当于哪个? 解决方法
C#中最接近的是Type类型,它包含有关类型的元数据.
public class A { } public static int Main(string[] args) { Type b = typeof(A); } 这不完全一样.在Delphi中,“othertype的类型”本身就是一个可以分配给变量的类型.在C#中,“typetype”是一个System.Type实例,可以分配给System.Type类型的任何变量. 例如,在Delphi中,您可以这样做: type TAClass = class of TA; TA = class public class procedure DoSomething; end; var x : TAClass; begin x := TA; x.DoSomething(); end; 在C#中你不能这样做您不能从碰巧持有typeof(A)的类型的实例调用类型A的静态方法,也不能定义一个只能保存typeof(A)或派生类型的变量. (Delphi元类类型使用的一些特定模式可以使用泛型: public class A { } public class ListOfA<T> where T: A { } 在这种情况下,T是“类型A”或任何派生类A用于构造类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |