正如你所看到的,它接收一个类名作为它的param并返回类的类型。那为什么它不是一个函数?
答案 0 :(得分:6)
typeof
是运算符,由编译器处理。说到运行时,typeof
未被调用,因此它不是函数。
在代码中出现typeof(T)
的地方,编译器会提供对Type
类型构建的T
对象的引用。
代码中的每个类型都有一个可以获取的关联Type
对象。有两种方法可以获取Type
个对象:Object.GetType()
实例级方法和typeof
运算符。
答案 1 :(得分:2)
只是为了补充Zoran的回答:
从语言语法的角度来看,typeof
不能作为函数实现,因为它的参数是类型名称作为一个单词。
C#不允许您将类型名称作为参数传递。因此,typeof(string)
不必使用typeof("System.String, mscorlib")
来调用类似Type.GetType
的内容,因为nameof
函数正是这样做的,因此会破坏运算符的用途。
mySessionVariable
有完全相同的问题。