C# 主要运算符中的成员访问
Posted cjygrow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 主要运算符中的成员访问相关的知识,希望对你有一定的参考价值。
在开发过程中,我遇到了一种null 条件成员访问的写法,开始不太理解,之后专门查了微软的官方文档,下面是具体内容:
三种成员访问的三种形式
(1)x.y:成员访问。
(2)x?.y:null 条件成员访问。 如果左操作数计算结果为 null
,则返回 null
。
(3)x?[y]: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 及更高版本中可用,主要应用在委托为空的判断,保证线程安全。
以上就是今天分享的内容,希望可以帮助大家!
以上是关于C# 主要运算符中的成员访问的主要内容,如果未能解决你的问题,请参考以下文章