C#中public bool Active => isActive || IsRequestActive的含义是什么
语句整体含义
public bool Active => isActive || IsRequestActive; 是C# 6及更高版本支持的表达式体只读属性,属于语法糖写法,和你熟悉的字段定义public bool Active;有本质区别:后者是可读写的存值容器,而这个写法等价于以下完整的只读属性定义:
public bool Active { get { return isActive || IsRequestActive; } }
每次访问Active属性时,都会实时计算后面的表达式结果返回,属性本身不存储任何数据。
=> 运算符用法
这里的=>是表达式体运算符,作用是简化只有单行返回逻辑的类成员定义,除了只读属性外,还可用于方法、只读索引器、构造函数等场景,省略大括号和return关键字,大幅精简代码。
注意它和Lambda表达式中的=>是同一个符号,但此处用于类成员定义,不需要额外委托类型支持。
|| 运算符用法
||是C#中的逻辑或运算符,也叫短路或,运算规则如下:
- 只要左右两个操作数有一个值为
true,整体运算结果就为true,只有两个操作数全为false时结果才为false - 自带短路特性:如果左侧第一个操作数求值已经是
true,会直接返回true,不会再计算右侧第二个操作数,可规避不必要的性能开销。
放到当前语句中,逻辑就是:只要isActive为true,或者IsRequestActive为true,Active属性的返回值就为true;如果isActive已经是true,程序不会再读取IsRequestActive的值。
内容的提问来源于stack exchange,提问作者EonianChris
相关产品推荐
相关产品推荐

