मैं निम्नलिखित कोड है गुजर के आधार पर:सी # का अनुमान लगा सामान्य प्रकार एक प्रतिनिधि
public static class X
{
public static C Test<A,B,C>(this A a, Func<B,C> f)
where C:class
{
return null;
}
}
public class Bar
{
public Bar()
{
this.Test(foo); //this doesn't compile
this.Test((Func<int, string>)foo);
this.Test((int q) => "xxx");
}
string foo(int a) { return ""; }
}
चिह्नित लाइन क्यों संकलन नहीं करता है? क्या रिटर्न प्रकार के साथ हस्ताक्षर का हिस्सा नहीं है?
लेकिन तीसरी लाइन संकलित करता है, जो मुझे लगता है कि संकलक कुछ दूसरी पंक्ति के समान में बदल जाता है ...
[सी # 3.0 जेनेरिक प्रकार अनुमान के संभावित डुप्लिकेट - एक फ़ंक्शन पैरामीटर के रूप में एक प्रतिनिधि को पास करना] (http://stackoverflow.com/questions/407983/c-3-0-generic-type-inference-passing-a- प्रतिनिधि-ए-ए-फ़ंक्शन-पैरामीटर) उन उत्तरों को पढ़ें, वे एक विस्तृत स्पष्टीकरण देंगे। –