假设我有这个接口,
interface IContact
{
IAddress address { get; set; }
}
interface IAddress
{
string city { get; set; }
}
class Person : IPerson
{
public IContact contact { get; set; }
}
class test
{
private test()
{
var person = new Person();
if (person.contact.address.city != null)
{
//this will never work if contact is itself null?
}
}
}
Person.Contact.Address.City != null
(检查 City 是否为 null)
但是,如果 Address、 Contact 或 Person 本身为 null,则此检查失败。
目前,我能想到的一个解决办法是:
if (Person != null && Person.Contact!=null && Person.Contact.Address!= null && Person.Contact.Address.City != null)
{
// Do some stuff here..
}
有没有更干净的方法?
我真的不喜欢 null
检查被做为 (something == null)
。相反,是否有其他更好的方法来做类似 something.IsNull()
方法的事情?