C# Type的问题

QQ图片20191011112030.png

        Type t=typeof(Myclass);
        Console.WriteLine(t.Name);
        
        Console.WriteLine(t.GetFields()[0].Name);
        Console.ReadLine();
这是个抽象类,不能有实例。
为什么代码可以创建实例。
还有实际返回的  typeof(Myclass);
具体是什么对象?是它的派生类??
        
阅读 1.8k
2 个回答

typeof 运算符实际返回的是一个 System.Reflection.TypeInfo 对象,它继承自 System.Type。

当然了,TypeInfo 本身也是没有 public 构造函数的,你还是不能手动实例化出来。

之所以这么设计,就是想隐藏内部实现、不让开发者自己能手动实例化出一个 System.Type 对象。

这是个抽象类,不能有实例。
为什么代码可以创建实例。
还有实际返回的 typeof(Myclass);
具体是什么对象?是它的派生类??

你已经自己回答了自己的问题。

这里的实例应该是 Type 的派生类的实例。

具体是什么类型,可以用 t.GetType() 看看 (Object.GetType

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进