如何将Rx Observable的生成类型从int改为double
本文关键字:类型 int 改为 double Rx Observable | 更新日期: 2023-09-27 18:13:06
我有以下代码:
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"));
我不认为你可以不添加一个选择操作符,因为它将需要重写定时器生成器函数,这应该不是那么困难,但可能是棘手的。