📜  C#6.0 null propagator

📅  最后修改于: 2020-11-01 03:08:07             🧑  作者: Mango

C#null propagator

C#Null传播者是运算符。它用于检查对象引用链中的空值。此运算符是两个符号(问号(?)和逗号(,))的组合。

在C#代码中,如果我们使用null对象调用方法或属性,则编译器将引发System.NullReferenceException异常。如果我们不检查代码中的null,则会收到此异常。

为了避免这种异常,我们可以使用null传播运算符。

在下面的示例中,我们在调用方法之前通过使用if块检查空引用。

不使用Null传播器的C#示例

using System;
namespace CSharpFeatures
{
    class Student
    {
        public string Name { get; set; }
        public string Email { get; set; }
    }
    class NullConditionalOperator
    {
        public static void Main(string[] args)
        {
            Student student = new Student() { Name = "Rahul Kumar"};
            // Checking for null value 
            if(student.Name != null)
            {
                Console.WriteLine(student.Name.ToUpper());
            }
        }
    }
}

输出量

Rahul Kumar

在下面的示例中,我们使用Null Propagator运算符检查空引用。

空传播运算符的C#示例

using System;
namespace CSharpFeatures
{
    class Student
    {
        public string Name { get; set; }
        public string Email { get; set; }
    }
    class NullConditionalOperator
    {
        public static void Main(string[] args)
        {
            Student student = new Student() { Name="Peter", Email = "peter@abc.com"};
            Console.WriteLine(student?.Name?.ToUpper() ?? "Name is empty");
            Console.WriteLine(student?.Email?.ToUpper() ?? "Email is empty");
            Student student1 = new Student();
            Console.WriteLine(student1?.Name?.ToUpper() ?? "Name is empty");
            Console.WriteLine(student1?.Email?.ToUpper() ?? "Email is empty");
        }
    }
}

输出量

PETER
PETER@ABC.COM
Name is empty
Email is empty