CodeGo.net>在结果是T和类型(T).IsInstanceOfType(结果)之间有明显的区别?

以下两个语句均测试某个对象x是否为T类型.一个对象在性能方面应该有所区别吗?

var result1 = x is T;
var result2 = typeof(T).IsInstanceOfType(x);

谢谢!

解决方法:

由于IsInstanceOfType是采用对象的方法,因此将对值类型进行装箱.另一方面,运算符将不会执行拳击.

当您在编译时知道T是特定类型还是泛型类型参数时,使用第一种方法会更好.第二种方法适用于您的代码在运行时获取类型的情况,因为第一种方法不适用:

Type typeKnownAtRuntime = ...
var result2 = typeKnownAtRuntime.IsInstanceOfType(x); // This works
var incorrect = x is typeKnownAtRuntime;   // This does not compile
上一篇:JavaScript-如何获取原始值的引用?


下一篇:java-如何安全地更改变量intellij的类型?