सशर्त अभिव्यक्ति का प्रकार निर्धारित नहीं किया जा सकता है, क्योंकि 'लैम्ब्डा अभिव्यक्ति' और 'लैम्ब्डा अभिव्यक्ति'सी #: 'लैम्ब्डा अभिव्यक्ति' और 'लैम्ब्डा अभिव्यक्ति' के बीच कोई अंतर्निहित रूपांतरण नहीं है?
कहो whaat के बीच कोई अंतर्निहित रूपांतरण है वहाँ? क्या कोई मुझे इस संकलन त्रुटि को समझा सकता है?
protected override Func<System.IO.Stream> GetStream()
{
return someBool
?() => EmbeddedResourceExtractor.GetFile("SomeFile1.ext")
:() => EmbeddedResourceExtractor.GetFile("SomeFile2.ext");
}
यह नहीं करता है::
protected override Func<System.IO.Stream> GetStream()
{
return() => EmbeddedResourceExtractor.GetFile("SomeFile1.ext");
}
और न ऐसा करते हैं: यह कोड है कि यह उत्पादन होता है
protected override Func<System.IO.Stream> GetStream()
{
if(someBool)
return() => EmbeddedResourceExtractor.GetFile("SomeFile1.ext");
return() => EmbeddedResourceExtractor.GetFile("SomeFile2.ext");
}
http://stackoverflow.com/questions/263151/lambdas-and-the-ternary-operator-weird-issue – user17541