Atajo para "nulo si el objeto es nulo, o object.member si el objeto no es nulo" [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Comprobación nula profunda, ¿hay una mejor manera? 16 respuestas¿Cómo verificar nulos en una expresión lambda profunda? [duplicar] 10 respuestas

Estoy tratando de escribir un método de extensión genérico que me permita hacer esto:

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

NullOrPropertyOf() volveríanull si se usa en unnull objeto (por ejemplo, sistartDateXAttribute estabanull), o devolver el resultado de unFunc si no es nulo

¿Cómo sería este método de extensión?

Respuestas a la pregunta(3)

Su respuesta a la pregunta