पर लागू रूपांतरण मैं (विशिष्ट) लैम्ब्डा अभिव्यक्तियों से एक अंतर्निहित रूपांतरण को उपयोगकर्ता द्वारा परिभाषित प्रकार में परिभाषित करना चाहता हूं। मैं निम्नलिखित की कोशिश की:लैम्ब्डा अभिव्यक्ति से उपयोगकर्ता परिभाषित प्रकार
public static implicit operator DualElement<T>(Func<OPTatom, OPTatom, T> atomMap)
{
return new DualElement<T>(e => atomMap(e[0],e[1]));
}
तो मैं करने की कोशिश की
DualElement<double> dubidu = (i, j) => cost[i, j];
जो देता है "कनवर्ट नहीं कर सकता लैम्ब्डा अभिव्यक्ति ... क्योंकि यह एक प्रतिनिधि प्रकार नहीं है"
इसके बजाय, क्या काम करता है:
DualElement<double> dideldu = (Func<OPTatom, OPTatom, double>)((i, j) => cost[i, j]);
मुझे लगता है, लैम्ब्डा भाव प्रकार 'समारोह' की जरूरत नहीं है, इसलिए है कि मैं कुछ di डाल करने के लिए है निहित रूपांतरण में fferent।
क्या कोई मुझे संकेत दे सकता है?
'' DualElement'' की परिभाषा क्या है? –
@ सजदद: मेरे पास अलग-अलग लैम्ब्डा अभिव्यक्तियां हैं जिनका अर्थ है "ओपीटीटीमेंट टू टी के तत्व से एक कार्य"। मेरा उद्देश्य उन्हें एक ही प्रकार में पूर्ण रूप से परिवर्तित करना है ताकि मुझे हर विधि को अधिभारित करने की आवश्यकता न हो DualElement से आया था। –