gpt4 book ai didi

c# - "x as X != null"和 "x is X"总是返回相同的结果吗?

转载 作者:行者123 更新时间:2023-11-30 13:37:48 30 4
gpt4 key购买 nike

是否存在这两个 if 语句会产生不同结果的情况?

if(x as X != null)
{
// Do something
}

if(x is X)
{
// Do something
}

编辑:澄清一下:我知道运算符(通常)和它们的含义之间有什么区别。问题是在任何情况下这两者会产生不同的结果。

最佳答案

这两个语句在功能上没有区别。通常,as 版本用于避免双重类型测试,因为您可以执行以下操作

var local = x as X;
if (local != null) {
// Sweet I have local!
}

对比

if (x is X) { 
// This runs the type check yet again
var local = (X)x;
}

如果您在类型测试后实际上并未使用该值,则只需使用 is 版本

关于c# - "x as X != null"和 "x is X"总是返回相同的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686992/

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