这是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用于构造类.

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...