栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

.NET中依靠&&短路安全吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.NET中依靠&&短路安全吗?

是。在C#

&&
||
被短路,从而评估右侧只有左侧尚不确定结果。运营商
&
|
在另一方面也不短路,并始终评估两侧。

规格说明:

&&
||
运营商被称为条件逻辑运算符。它们也称为“短路”逻辑运算符。

该运算
x && y
符与该运算符相对应
x & y
,但
y
仅当
x
true

… 时才进行
运算。换句话说,首先被评估并转换为type 。然后,如果是,进行评估并将其转换为类型,并且这成为操作的结果。否则,运算结果为。
x &&y``(bool)x ? (bool)y : false``x``bool``x``true``y``bool``false



(C#语言规范版本4.0-7.12条件逻辑运算符)

的一个有趣的性质

&&
,并
||
为它们短路,即使他们不上的bool操作,但如果用户重载运营商的类型
&
|
与一起
true
false
运营商。

该操作

x && y
的计算方式为
T.false((T)x) ? (T)x : T.&((T)x, y)
,其中
T.false((T)x)
是在中
operator false
声明的调用
T
,而
T.&((T)x
y)是对选定对象的调用
operator&
。此外,值(T)x仅应评估一次。

换句话说,

x
首先要求值并将其转换为type,
T
然后
operator false
对结果进行调用以确定是否
x
绝对是
false

然后,如果
x
是肯定的话
false
,则运算的结果是先前计算出的值,以
x
转换为type
T

否则,
y
将对其求值,然后对
&
先前计算出的要
x
转换为type
T
的值和计算出的
y
要产生操作结果的值调用所选的运算符。

(C#语言规范版本4.0-7.12.2用户定义的条件逻辑运算符)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号