我有这个可观察的:
public class NetworkToolEngine
{
public NetworkToolEngine()
{
this.connectionAvailable = Observable
.Interval(TimeSpan.FromSeconds(5))
.Select(_ => true);
}
}
static class Program
{
static void Main()
{
NetWorkToolEngine networkToolEngine = new NetworkToolEngine();
this.networkToolEngine.ConnectionAvailable
.Do(_ => this.ConnectionAvailable())
.Catch(ex => //<<<<<1>>>>>
{
this.ConnectionUnavailable();
return Observable.Empty<bool>();
});
}
现在;我在<<<<<1>>>>>
收到此编译错误:
无法将 lambda 表达式转换为类型"IObservable",因为它不是委托类型
有什么想法吗?
这是因为有多个 catch 重载,并且没有指定ex
类型 - 它选择了错误的一个。你需要这样做:
.Catch((Exception ex) => //<<<<<1>>>>>
{
this.ConnectionUnavailable();
return Observable.Empty<bool>();
});