Cleaner способ сделать нулевую проверку в C #? [Дубликат]

На этот вопрос уже есть ответ:

C # элегантный способ проверить, является ли свойство свойства нулевым 21 ответ

Предположим, у меня есть этот интерфейс,

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 (Это работает, чтобы проверить, является ли Город нулевым или нет.)

Однако эта проверка не выполняется, если адрес, контакт или само лицо имеют значение 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() метод?

Ответы на вопрос(19)

Ваш ответ на вопрос