Loại biểu thức điều kiện không xác định được vì không có chuyển đổi ngầm giữa 'biểu thức lambda' và 'biểu thức lambda'C#: Không có chuyển đổi ngầm giữa 'biểu thức lambda' và 'biểu thức lambda'?
Say whaat? Ai đó có thể vui lòng giải thích lỗi biên dịch này cho tôi? Đây là mã mà tạo ra nó:
protected override Func<System.IO.Stream> GetStream()
{
return someBool
?() => EmbeddedResourceExtractor.GetFile("SomeFile1.ext")
:() => EmbeddedResourceExtractor.GetFile("SomeFile2.ext");
}
này không:
protected override Func<System.IO.Stream> GetStream()
{
return() => EmbeddedResourceExtractor.GetFile("SomeFile1.ext");
}
Và không phải làm điều này:
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