为IObservable实现自己的运算符(详解)

作者:jingxian 时间:2022-04-02 08:58:15 

您可以通过为LINQ库不提供的操作添加新运算符,或者通过创建自己的标准查询运算符实现来提高可读性和性能,从而扩展Rx。 编写自定义版本的标准LINQ操作符在您希望使用内存中对象操作时以及当预期自定义不需要查询的全面视图时非常有用。

创建新操作符

LINQ提供了一整套操作符,涵盖了一组实体上的大多数可能的操作。 但是,您可能需要一个运算符为查询添加特定的语义,尤其是如果您可以在代码中多次重复使用该运算符。

许多现有的LINQ运算符实际上是使用其他基本LINQ运算符构建的。 例如,SelectMany运算符是通过组合Select和Merge运算符构建的,如下面的代码所示。


public static IObservable<TResult> SelectMany<TSource, TResult>( this IObservable<TSource> source, Func<TSource, IObservable<TResult>> selector)
{
 return source.Select(selector).Merge();
}
In t

通过在构建新的LINQ运算符时重用现有的LINQ运算符,您可以利用Rx库中实现的现有性能或异常处理功能。

当编写自定义运算符时,最好不要留下任何未使用的一次 * ; 否则,您可能会发现资源实际上可能泄漏,取消可能无法正常工作。

定制现有运算符

向LINQ中添加新的运算符是扩展其功能的一种方法。 但是,您还可以通过将现有运算符包含到更专门和更有意义的运算符中来提高代码可读性。

标签:实现,运算符,iobservable
0
投稿

猜你喜欢

  • Android自定义listview布局实现上拉加载下拉刷新功能

    2023-05-12 23:27:28
  • java组件SmartUpload和FileUpload实现文件上传功能

    2022-02-02 17:08:17
  • springboot max-http-header-size最大长度的那些事及JVM调优方式

    2021-12-14 03:43:46
  • c#实现图片二值化例子(黑白效果)

    2023-02-19 11:52:46
  • 详解Spring-bean的循环依赖以及解决方式

    2023-08-18 18:30:38
  • Android基于TextView属性android:ellipsize实现跑马灯效果的方法

    2022-09-28 15:59:55
  • Java Swing中JDialog实现用户登陆UI示例

    2021-10-12 13:58:00
  • Android自动播放Banner图片轮播效果

    2022-09-06 05:55:42
  • Android Dialog对话框用法实例详解

    2022-11-04 02:38:47
  • Java(基于Struts2) 分页实现代码

    2023-11-04 05:58:58
  • Android实现摇一摇功能

    2023-07-23 20:21:11
  • Java实战项目之校园跑腿管理系统的实现

    2023-11-11 10:29:09
  • PowerManagerService之唤醒锁的使用获取创建示例解析

    2021-09-29 06:42:22
  • Mybatis @SelectKey用法解读

    2022-04-18 18:01:35
  • Java函数式编程(十二):监控文件修改

    2022-08-11 10:21:01
  • java利用Socket实现聊天室功能实例

    2022-11-10 01:25:43
  • C#中的尾递归与Continuation详解

    2022-07-27 04:14:05
  • Java Thread.currentThread().getName() 和 this.getName()区别详解

    2021-10-31 01:46:18
  • Log4Net 日志配置[附带源码下载]

    2023-11-10 04:21:22
  • springboot publish event 事件机制demo分享

    2022-11-19 23:45:45
  • asp之家 软件编程 m.aspxhome.com