如何将Rx Observable的生成类型从int改为double



我有以下代码:

var timer = Observable.Timer(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(10));
timer.Subscribe(Console.WriteLine, ()=>Console.WriteLine("Completed"));

生成从0到…的整数

但问题是为什么是整数?是否有可能在没有额外计算的情况下在From 0.1, 0.2, 0.3中产生双精度?

Rx Timer将生成增量长值,您可以通过使用Select语句进一步将其转换为其他内容。在你的情况下,如果你想获得一个双精度值的列表,你可以简单地改变你的定时器声明,像这样:

var timer = Observable.Timer(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(10)).Select(i => i / 10.0);
timer.Subscribe(Console.WriteLine, ()=>Console.WriteLine("Completed"));

我不认为你可以不添加一个选择操作符,因为它将需要重写定时器生成器函数,这应该不是那么困难,但可能是棘手的。

最新更新