为什么需要typeof?

cis*_*eat 7 c#

我不时想到的东西:为什么在C#中需要typeof运算符?难道编译器不知道这public class Animal是一个只是按照定义的类型吗?为什么我需要指定SomeMethod(typeof(Animal))何时需要引用类型?

Nol*_*rin 6

Animal只是类型的名称,typeof(Animal)返回实际的类型对象(System.Type实例).当然,可能只是让类型名称在代码中返回类型对象,但它使编译器/解析器的工作更加困难(识别类型名称何时表示typeof或其他) - 因此存在该typeof关键字.它也可以使代码更清晰.

  • 你也可以命名属性,比如类型(常见于"颜色"等),这些属性可能会更加混乱. (2认同)

And*_*rey 5

typeof(Class)是将 Type 表示为文字的唯一方法。当你写的时候,Class.SomeField你的意思是静态字段。当您编写时,typeof(Class).SomeField您会引用Type代表您的类的类对象的字段。