这是C#声明相当于delphi“class”(类的类型)?

前端之家收集整理的这篇文章主要介绍了这是C#声明相当于delphi“class”(类的类型)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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用于构造类.

猜你在找的C#相关文章