मेरा सहकर्मी इस के साथ आया और मुझे आश्चर्य है कि दूसरों को क्या लगता है? व्यक्तिगत रूप से, मुझे यह दिलचस्प लगता है लेकिन आश्चर्य है कि क्या यह प्रस्थान बहुत बड़ा है? नीचे कोड उदाहरण। नीचे विस्तार विधियां।अधिक धाराप्रवाह सी #/.NET
सामान्य विचार कृपया। अन्य एक्सटेंशन विधियों को जोड़ा जा सकता है?
var ddl = Page.FindControl("LocationDropDownList") as DropDownList;
ddl.Visible = true;
ddl.SelectedValue = "123";
if(isAdmin)
ddl .SelectedValue = "111";
बन जाता है:
Page.FindControl("LocationDropDownList")
.CastAs<DropDownList>()
.With(d => d.Visible = true)
.With(d => d.SelectedValue = "123")
.WithIf(isAdmin, d => d.Items.Add(new ListItem("Admin", "1")));
या:
Page.FindControl("LocationDropDownList")
.CastAs<DropDownList>()
.With(d =>
{
d.Visible = true;
d.SelectedValue = "123";
})
.WithIf(isAdmin, d => d.SelectedValue = "111");
एक्सटेंशन तरीके:
public static TResult CastAs<TResult>(this object obj) where TResult : class
{
return obj as TResult;
}
public static T With<T>(this T t, Action<T> action)
{
if (action == null)
throw new ArgumentNullException("action");
action(t);
return t;
}
public static T WithIf<T>(this T t, bool condition, Action<T> action)
{
if (action == null)
throw new ArgumentNullException("action");
if (condition)
action(t);
return t;
}
** प्रत्येक डिज़ाइन को एक समस्या का समाधान करना चाहिए। ** इस धाराप्रवाह एपीआई डिज़ाइन को हल करने का प्रयास करने में क्या समस्या है? ऐसा लगता है कि मूल्य बनाने के बिना जटिलता जोड़ना प्रतीत होता है। – LBushkin
यह एक बाजुका के साथ एक मक्खी मारने की कोशिश की तरह है! जीतने के लिए कुछ भी नहीं है, कोड की बस और रेखाएं। – JOBG
मेरे दिमाग में, 'ifIf' एक सरल अगर कथन से बहुत कम पठनीय है। यदि आप "धाराप्रवाह" इंटरफ़ेस करने जा रहे हैं, तो कम से कम इसे आसानी से पढ़ें! –