Art des bedingten Ausdrucks kann nicht bestimmt werden, weil es keine implizite Konvertierung zwischen ‚Lambda-Ausdruck‘ ist und ‚Lambda-Ausdruck‘C#: Keine implizite Umwandlung zwischen 'Lambda-Ausdruck' und 'Lambda-Ausdruck'?
Say Whaat? Kann mir bitte jemand diesen Kompilierfehler erklären? Dies ist der Code, der es produziert:
protected override Func<System.IO.Stream> GetStream()
{
return someBool
?() => EmbeddedResourceExtractor.GetFile("SomeFile1.ext")
:() => EmbeddedResourceExtractor.GetFile("SomeFile2.ext");
}
Dies gilt nicht:
protected override Func<System.IO.Stream> GetStream()
{
return() => EmbeddedResourceExtractor.GetFile("SomeFile1.ext");
}
Und auch dies tun:
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