तो मैं अपने सी # lib में यह है:गतिशील कीवर्ड "शायद" monad सक्षम बनाता है?
public static TOut IfNotNull<TIn, TOut>
(this TIn instance, Func<TIn, TOut> func)
{
return instance == null ? default(TOut) : func(instance);
}
प्रयुक्त की तरह:
DateTime? expiration = promo.IfNotNull(p => p.TermsAndConditions.Expiration)
.IfNotNull(e => e.Date);
मैं कैसे इस वाक्य रचना के बजाय सक्षम करने के लिए सी # 4 dynamic
कीवर्ड का उपयोग करने के पता लगाने की कोशिश मेरी दिमाग wracking रखने :
DateTime? expiration = promoOffer.TermsAndConditions.Maybe()
.Expiration.Maybe()
.Date;
मैं कुछ उदाहरण है कि मैं काम नहीं सोचा था, लेकिन वे खराब हो गई है जब आप चेनिंग Maybe()
रों शुरू करते हैं।
कोई विचार?
(क्या मैं अपना समय बर्बाद कर रहा हूं? Maybe()
IfNotNull()
से अधिक जीत है)?
शायद मैं गलत विचार मिल गया है, लेकिन नहीं होगा ?? ऑपरेटर का उपयोग यहां किया जा सकता है? – spender
गतिशील चर मुझे विश्वास विधियों को नहीं देख सकते हैं। –
व्यक्तिगत रूप से मुझे वर्तमान में 'IfNotNull()' पसंद है। चूंकि आप विस्तार विधियों के साथ 'गतिशील' का उपयोग नहीं कर सकते हैं, मेरी भावना यह है कि कोड भयानक हो सकता है। –