Cleaner maneira de fazer uma verificação nula em c #? [duplicado

Esta pergunta já tem uma resposta aqui:

C # maneira elegante de verificar se a propriedade de uma propriedade é nula 21 respostas

uponha, eu tenho essa interfac

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 (Isso funciona para verificar se a cidade é nula ou não.)

No entanto, essa verificação falhará se Endereço, Contato ou Pessoa for nul

Atualmente, uma solução que eu conseguia pensar era:

if (Person != null && Person.Contact!=null && Person.Contact.Address!= null && Person.Contact.Address.City != null)

{ 
    // Do some stuff here..
}

Existe uma maneira mais limpa de fazer isso?

Eu realmente não gosto donull verificação sendo feita como(something == null). Em vez disso, existe outra maneira legal de fazer algo como osomething.IsNull() método?

questionAnswers(19)

yourAnswerToTheQuestion