在使用typeof,GetType()方法中遇到两个问题。
1,为什么System.Type.GetType("System.String")==System.Type.GetType("System.String")值为true。
按照msdn的解释,GetType方法会返回一个Type类型的对象。那为什么两次返回的对象相等呢。这种相等比较的是两个对象的reference,难道两个对象都指向了同一块内存空间?
2,typeof,与GetType()方法相同吗
针对问题1:
msdn给出官方答案是:某个类型是唯一的 Type 对象;即,两个 Type 对象引用当且仅当它们表示相同的类型时,才引用相同的对象。
翻译一下:就是同一个类经过typeof或者GetType方法获得的Type对象永远是同一个。
针对问题2:typeof与System.Type.GetType()与Object.GetType()是完全相同的。需要注意的是System.Type.Getype()接受的参数是字符串。需要将类型完整名称作为字符串传入,包括该类型的命名空间。