Więc mam to w moim C# lib:dynamiczne słowo kluczowe włącza "może" monadę?
public static TOut IfNotNull<TIn, TOut>
(this TIn instance, Func<TIn, TOut> func)
{
return instance == null ? default(TOut) : func(instance);
}
używany jak:
DateTime? expiration = promo.IfNotNull(p => p.TermsAndConditions.Expiration)
.IfNotNull(e => e.Date);
Trzymam wracking mój mózg próbuje dowiedzieć się, jak używać słowa kluczowego C# 4 dynamic
włączyć tę składnię zamiast :
DateTime? expiration = promoOffer.TermsAndConditions.Maybe()
.Expiration.Maybe()
.Date;
miałem kilka przykładów, że myślałem pracowali ale zepsuł po uruchomieniu łańcuchowym Maybe()
s.
Wszelkie pomysły?
(Czy tracę czas? Czy Maybe()
wygrywa nad IfNotNull()
)?
Może mam zły pomysł, ale czy nie ?? operator może być tutaj użyteczny? – spender
Zmienne dynamiczne nie widzą metod rozszerzenia, jak sądzę. –
Osobiście bardzo podoba mi się 'IfNotNull()', które obecnie masz. Ponieważ nie można używać 'dynamic' z metodami rozszerzeń, mam wrażenie, że kod może się okazać horrendalny. –