मुझे एक विधि में एक सामान्य प्रकार कनवर्टर फ़ंक्शन भेजना पसंद है लेकिन मैं यह नहीं समझ सकता कि इसे कैसे किया जाए।मैं सामान्य प्रकार पैरामीटर के साथ एक func में कैसे जा सकता हूं?
public void SomeUtility(Func<T><object,T> converter)
{
var myType = converter<MyType>("foo");
}
संपादित करें (टिप्पणी में भी मेरी चर्चा देखें:
यहाँ अवैध वाक्य रचना बताते हैं कि मैं क्या हासिल करना, समस्या मैं अपने समारोह के साथ एक साथ सामान्य प्रकार निर्दिष्ट करने के लिए कैसे पता नहीं है है की तरह है लॉरेंस) के साथ: द्वारा "सामान्य प्रकार कनवर्टर" मैं मतलब मैं, एक कनवर्टर है कि किसी भी मजबूत प्रकार < टी > (आपत्ति नहीं) करने के लिए परिवर्तित कर सकते हैं में पारित करने के लिए तो मेरे विधि में अगली पंक्ति हो सकता है चाहते हैं:
var myOtherType = converter<MyOtherType>("foo");
प्रतिनिधि मुझे पी पसंद है गधा के रूप में एक पैरामीटर कुछ इस तरह दिखेगा:
private delegate TOutput myConverterDelegate<TOutput>(object objectToConvert);
यह अधिक है एक वाक्य रचना/सी # अन्वेषण अब, किया मैं शायद बजाय एक इंटरफ़ेस का उपयोग करेगा चीजें पाने के लिए है, लेकिन मुझे उम्मीद है कि इस एक के साथ पूरा करने के लिए संभव है करना समारोह/प्रतिनिधि।
क्या तथ्य है कि आपने विधि निकाय के अंदर एक प्रकार निर्दिष्ट किया है? क्या आप इस विधि को कॉलर द्वारा परिभाषित एक विशिष्ट प्रकार के बजाय कई प्रकार के विरुद्ध रूपांतरण करने की आवश्यकता हो सकती है? –
हां, यही वह था जिसे मैंने "सामान्य प्रकार कनवर्टर" के रूप में व्यक्त करने की कोशिश की थी, इसलिए अगली पंक्ति varOtherType = कनवर्टर ("foo") हो सकती है; –
joeriks
ठीक है - तो मुझे लगता है कि आपको मेरा जवाब उपयोगी लगेगा :) –