psv忍龙2,订酒,可爱的短发发型
在开发过程中,我遇到了一种null 条件成员访问的写法,开始不太理解,之后专门查了微软的官方文档,下面是具体内容:
三种成员访问的三种形式
(1):成员访问。
(2):null 条件成员访问。 如果左操作数计算结果为 null
,则返回 null
。
(3):null 条件数组元素或类型索引器访问。 如果左操作数计算结果为 null
,则返回 null
。
其中,我主要介绍一下第二和第三种,x?.y以及x?[y]的语法:null 条件运算符在 c# 6 及更高版本中可用,仅当操作数的计算结果为非 null 时,null 条件运算符才会将成员访问 ?.
或元素访问 ?[]
运算应用于其操作数。 如果操作数的计算结果为 null
,则应用运算符的结果为 null
。 null 条件成员访问运算符 ?.
也称为 elvis 运算符。更多
具体实例:
namespace consoleapp_test
{
delegate int numchange(int n);//定义委托
class program
{
static int num = 10;
public static int addnum(int n)
{
num += n;
return num;
}
static void main(string[] args)
{
//委托是null时
numchange nc = new numchange(addnum);
nc = null;
int? result = nc?.invoke(1);
//委托不为null时
numchange nc1 = new numchange(addnum);
int? result1 = nc1?.invoke(1);
//输出结果
console.writeline(string.format("第一个结果:{0},第二个结果:{1}", result, result1));
console.readkey();
}
}
}
总结:null 条件运算符在 c# 6 及更高版本中可用,主要应用在委托为空的判断,保证线程安全。
以上就是今天分享的内容,希望可以帮助大家!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论