gpt4 book ai didi

c# - 访问 null 对象的属性时,是否有方便的语法返回 null 而不是异常

转载 作者:太空狗 更新时间:2023-10-30 00:34:15 25 4
gpt4 key购买 nike

考虑这个简单的 C# 示例:

var person = new Person {Name = "Fred", MailingAddress=null };
var result = String.Format("{0} lives at {1}",person.Name, person.MailingAddress.Street);

很明显,这将抛出 NullReferenceException,因为 MailingAddress 属性为空。

我可以将第二行重写为:

var result = String.Format("{0} lives at {1}", person.Name, person.MailingAddress == null ? (String)null : person.MailingAddress.Street);

有没有更简单的表达方式?

最佳答案

此代码在技术上违反了 Law of Demeter , 所以有些人会认为首先写这个是不好的形式。

所以不,没有本地语法来完成你想要的,但是将这段代码移动到你的 Person 类中的一个属性将使这个调用代码更干净,并且让你符合得墨忒耳法则。

public string StreetAddress{
get { return this.MailingAddress == null ?
(String)null : person.MailingAddress.Street; }
}

关于c# - 访问 null 对象的属性时,是否有方便的语法返回 null 而不是异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8271393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com