Atalho para "nulo se o objeto for nulo ou object.member se o objeto não for nulo" [duplicado]

Esta pergunta já tem uma resposta aqui:

Verificação nula profunda, existe uma maneira melhor? 16 respostasComo verificar nulos em uma expressão lambda profunda? [duplicado] 10 respostas

Estou tentando escrever um método de extensão genérico que permita que eu faça isso:

this.startDate = startDateXAttribute.NullOrPropertyOf<DateTime>(() =>
{
    return DateTime.Parse(startDateXAttribute.Value);
});

NullOrPropertyOf() retornarianull se for usado em umnull objeto (por exemplo, sestartDateXAttribute estavanull) ou retorne o resultado de umFunc se não for nulo.

Como seria esse método de extensão?

questionAnswers(3)

yourAnswerToTheQuestion