Vì vậy, tôi có điều này trong C# lib của tôi:từ khóa động cho phép "có thể" đơn nguyên?
public static TOut IfNotNull<TIn, TOut>
(this TIn instance, Func<TIn, TOut> func)
{
return instance == null ? default(TOut) : func(instance);
}
Được sử dụng như:
DateTime? expiration = promo.IfNotNull(p => p.TermsAndConditions.Expiration)
.IfNotNull(e => e.Date);
tôi giữ các tập tin rác não của tôi đang cố gắng tìm ra cách để sử dụng 4 dynamic
C# từ khóa để bật cú pháp này để thay thế :
DateTime? expiration = promoOffer.TermsAndConditions.Maybe()
.Expiration.Maybe()
.Date;
tôi đã có một vài ví dụ mà tôi nghĩ làm việc nhưng họ bị phá vỡ khi bạn bắt đầu chaining các Maybe()
s.
Bất kỳ ý tưởng nào?
(Tôi có đang lãng phí thời gian của mình không? Maybe()
giành chiến thắng trên IfNotNull()
)?
Có lẽ tôi đã có ý tưởng sai, nhưng sẽ không phải là ?? toán tử được sử dụng ở đây? – spender
biến động không thể thấy các phương pháp tiện ích mà tôi tin. –
Cá nhân tôi khá giống 'IfNotNull()' hiện tại của bạn. Vì bạn không thể sử dụng 'dynamic' với các phương thức mở rộng, cảm giác của tôi là mã có thể kết thúc là khủng khiếp. –