परेशान।नामित पैरामीटर का उपयोग करते समय यह सी # कोड संकलित क्यों नहीं होता है?
class Test
{
void Main()
{
F(() => ""); // ok
F(named:() => ""); // 'T' cannot be inferred from the usage!
F<string>(() => ""); // ok
F<string>(named:() => ""); // ok
}
void F<T>(Func<T> named) { }
}
क्या कोई मुझे बता सकता है कि एफ को दूसरी कॉल संकलित करने में विफल क्यों होती है?
(ध्यान दें कि यह एक महत्वपूर्ण रूप से छीन लिया गया उदाहरण है, यही कारण है कि यह सिंथेटिक लगता है। वास्तविक मामले में मैं आया, 'नाम' से पहले कुछ डिफ़ॉल्ट पैरामीटर हैं और इसलिए नामित पैरामीटर आवश्यक है। और इसलिए, जाहिरा तौर पर कॉल करने वाले को 'टी' की स्पष्ट विनिर्देश है।)
संकलक के प्रतिनिधि प्रकार निष्कर्ष में एक अपर्याप्तता की तरह लगता है। – Jeff
लगता है ध्वनि। और यदि आप उस टिप्पणी को उत्तर में बनाते हैं तो मैं इसे स्वीकार करूंगा। – scobi