मैं निश्चित रूप से इसके लिए हूं।
मैं वर्तमान में विभिन्न परिदृश्यों के लिए सहायक तरीके लिख रहा हूं जहां मैं विभिन्न सदस्यों और कक्षाओं के तरीकों के संदर्भों को पारित करना चाहता हूं। इसे पूरा करने के लिए, उदाहरण के लिए, एक Expression<Func<TIn, TOut>>
सहायक के लिए तर्क के रूप में ले रहा है (जो मुझे लैम्ब्डा अभिव्यक्ति के साथ विधि तक पहुंचने देता है, इस प्रकार सब कुछ दृढ़ता से टाइप किया जाता है)।
लेकिन मुझे वर्तमान में इनपुट तर्कों की प्रत्येक अलग-अलग संख्या के लिए एक नई सहायक विधि परिभाषित करने की आवश्यकता है, क्योंकि मुझे इसके लिए सामान्य तर्कों की एक अलग राशि की आवश्यकता है।
HelperMethod<TIn>(Expression<Action<TIn>> arg) // Yes, C# can distinguish
HelperMethod<TOut>(Expression<Func<TOut>> arg) // these two from eachother
HelperMethod<TIn, TOut>(Expression<Func<TIn, TOut>> arg)
HelperMethod<TIn1, TIn2, TOut>(Expression<Func<TIn1, TIn2, TOut>> arg)
// etc
के बजाय मैं, के साथ क्या कर सकता है सबसे, दो तरीकों पर:
HelperMethod<TIn>(Expression<Action<TIn>> arg)
HelperMethod<TOut, TIn1 = DummyType, ...>(Expression<Func<TIn1, ..., TOut> arg)
मेरे मामले में, यह कोड दोहराव का एक बहुत से बच जाएंगे ...
स्रोत
2010-04-09 23:38:06
अपने उदाहरण में , आप 'IENumerable
टाइपऑफ (आईनेमरेबल
फ़ाइल नाम की समस्या के लिए यहां मानक समाधान, और मुझे लगता है कि वीएस टीम द्वारा स्वीकृत एक (हालांकि मुझे इस समय एक लिंक नहीं मिल रहा है), AGenericType के लिए फ़ाइल को AGenericType'4.cs जैसे नाम से सहेजना है। –