Questa invece mi piace un sacco, nonostante purtroppo non sia un’implementazione delle Monad in C#:

public class Foo
{
    public void Evaluate( Person person )
    {
        var number = person?.Addresses?.FirstOrDefault()?.StreetNumber;
    }
}

Se diciamo che, dato che StreetNumber è Int32, il tipo di “number” è Nullable<Int32> il resto direi che è abbastanza ovvio. Ci evita una valanga di noiose e rumorose “if”.

.m

Non tutte le feature che vediamo saranno sicuramente implementate, questi post sono basati sui draft pubblicamente disponibili al momento della scrittura