码迷,mamicode.com
首页 > Windows程序 > 详细

C# 主要运算符中的成员访问

时间:2019-06-09 17:04:10      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:adk   介绍   运算   安全   operator   开发   form   mat   mes   

    在开发过程中,我遇到了一种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# 主要运算符中的成员访问

标签:adk   介绍   运算   安全   operator   开发   form   mat   mes   

原文地址:https://www.cnblogs.com/cjygrow/p/10993917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!