在 C# 9.0 及以上版本中,可以使用 null 聚合运算符(?.)来优雅地处理 Optional 链
public class Address { public string? City { get; set; } } public class Person { public Address? Address { get; set; } } public class Program { public static void Main() { Person? person = GetPerson(); // 假设这个方法可能返回 null string? cityName = person?.Address?.City; if (cityName != null) { Console.WriteLine($"City: {cityName}"); } else { Console.WriteLine("City information not available."); } } private static Person? GetPerson() { // 实现获取 Person 对象的逻辑,可能返回 null return new Person { Address = new Address { City = "New York" } }; } }
在这个示例中,我们使用了 null 聚合运算符(?.)来优雅地处理 Optional 链。当 person
、Address
或 City
为 null 时,整个表达式将返回 null。否则,它将返回城市名称。通过这种方式,我们可以避免在代码中显式检查每个属性是否为 null。