C#6的null条件运算符(?.)是一种用于简化访问对象成员的语法糖。它主要用于避免在链式调用中出现空引用异常(NullReferenceException)。下面是使用该运算符的两个示例:
- 示例一:在引用可空类型时使用null条件运算符
假设我们有这样一个类:
public class Person
{
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Street { get; set; }
}
现在我们创建了一个Person对象,并且只初始化了Name属性,没有初始化Address属性。如果我们现在想获取这个Person对象的Address属性,那么我们可以这样写代码:
Person person = new Person { Name = "John Doe" };
string street = person.Address?.Street;
这里我们使用了null条件运算符(?.)来检查Address属性是否为null。如果Address不为null,那么我们就可以访问Street属性。如果Address为null,表达式将会返回null。
- 示例二:在调用方法时使用null条件运算符
还是以Person类为例,假设我们现在需要获取Person对象的Name的长度。我们可以这样写代码:
Person person = new Person { Name = "John Doe" };
int? nameLength = person.Name?.Length;
这里我们使用了null条件运算符(?.)来访问Name属性,并且调用了Length方法。如果Name为null,表达式将会返回null。如果Name不为null,表达式将会返回Name的长度。
总结:
C#6的null条件运算符(?.)是一种用于简化访问对象成员的语法糖。它可以避免在链式调用中出现空引用异常(NullReferenceException)。我们可以在访问可空类型或者调用方法时使用该运算符。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#6 null 条件运算符 - Python技术站