c 语言基础关键字及含义(C基础知识拾遗小问号大用途)

? 表示判断实例是否为null 的简写方式,今天小编就来聊一聊关于c 语言基础关键字及含义?接下来我们就一起去研究一下吧!

c 语言基础关键字及含义(C基础知识拾遗小问号大用途)

c 语言基础关键字及含义

C#基础知识拾遗:小问号大用途用法一:null 判断运算符

? 表示判断实例是否为null 的简写方式。

IEnumerable<IAuthorizeData> authData = ep?.Metadata.GetOrderedMetadata<IAuthorizeData>();

等同于:

if(null!=ep) { IEnumerable<IAuthorizeData> authData = ep.Metadata.GetOrderedMetadata<IAuthorizeData>(); }

用法二:null 合并运算符

?? 表示如果此运算符的左操作数不为 null,则返回左操作数;否则返回右操作数。

IEnumerable<IAuthorizeData> authData = ep?.Metadata.GetOrderedMetadata<IAuthorizeData>() ?? Array.Empty<IAuthorizeData>();

等同于:

IEnumerable<IAuthorizeData> authData; if(null!=ep) { if(null!=ep.Metadata.GetOrderedMetadata<IAuthorizeData>()) { authData = ep.Metadata.GetOrderedMetadata<IAuthorizeData>(); } else { authData = Array.Empty<IAuthorizeData>(); } } else { authData = Array.Empty<IAuthorizeData>(); }

用法三:三元运算符

? : 表示根据布尔表达式的计算结果为 true 还是 false 来返回两个表达式中的一个结果。

IEnumerable<IAuthorizeData> authData = ep==null ? Metadata.GetOrderedMetadata<IAuthorizeData>() : Array.Empty<IAuthorizeData>();

用法四:可空类型

Type? 表示可为 null 类型,等同于 Nullable<T> 。

private int? getNum = null;

等同于:

private Nullable<int> getNum = null;

注意默认值不同:

int Num; //默认 0 int? Num; // 默认 null Console.WriteLine(Num ?? 0) //输出 0

来自dotNET兄弟会

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页