我在Programming C#5.0中阅读了以下示例。为什么可以在不返回IDisposable时将此lambda表达式转换为Func<IObserver<char>, IDisposable>
。
IObservable<char> singularHotSource = Observable.Create(
(Func<IObserver<char>, IDisposable>)(obs =>
{
while (true)
{
obs.OnNext(Console.ReadKey(true).KeyChar);
}
}));
答案 0 :(得分:3)
正如@Patryk所说,这基本上与询问相同:&#34;为什么这可以说它返回int
,当它没有? &#34;:
int SomeMethod()
{
while (true) { }
}
回答;它不会在任何代码路径中返回不同的(另一种类型,或void
) - 所以肯定,为什么不呢?编译器可以将其表示为返回int
的方法。