我不时想到的东西:为什么在C#中需要typeof运算符?难道编译器不知道这public class Animal
是一个只是按照定义的类型吗?为什么我需要指定SomeMethod(typeof(Animal))
何时需要引用类型?
Animal
只是类型的名称,typeof(Animal
)返回实际的类型对象(System.Type
实例).当然,可能只是让类型名称在代码中返回类型对象,但它使编译器/解析器的工作更加困难(识别类型名称何时表示typeof或其他) - 因此存在该typeof
关键字.它也可以使代码更清晰.
typeof(Class)
是将 Type 表示为文字的唯一方法。当你写的时候,Class.SomeField
你的意思是静态字段。当您编写时,typeof(Class).SomeField
您会引用Type
代表您的类的类对象的字段。