gpt4 book ai didi

c# - 'result is T' 与 'typeof(T).IsInstanceOfType(result)' 之间有显着差异吗?

转载 作者:行者123 更新时间:2023-11-30 15:20:59 25 4
gpt4 key购买 nike

以下两个语句测试某个对象 x 是否属于 T 类型。在性能方面应该注意哪些差异?

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

谢谢!

最佳答案

IsInstanceOfType是一个采用对象的方法,值类型将被装箱。另一方面,运算符 is 不会执行装箱操作。

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

Type typeKnownAtRuntime = ...
var result2 = typeKnownAtRuntime.IsInstanceOfType(x); // This works
var incorrect = x is typeKnownAtRuntime; // This does not compile

关于c# - 'result is T' 与 'typeof(T).IsInstanceOfType(result)' 之间有显着差异吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38727056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com