typeof(T) where T : struct
有谁知道,例如,与之间的任何区别t.GetType() where t is a System.Object
?
ILdasm 显示 typeof(T) 使用System.Type::GetTypeFromHandle(RuntimeTypeHandle handle)
,而另一个只是 plain System.Object::GetType()
。实现是[MethodImpl(MethodImplOptions.InternalCall)]
,因此方法是在 CLR 的本机代码中定义的。所以,我只是想知道是否有人知道有任何理由更喜欢一个而不是另一个?
编辑:让我澄清一下,我最感兴趣的是您选择哪个似乎无关紧要的情况 - 也就是说,是否存在性能差异或任何其他原因?谢谢!