为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
投稿

猜你喜欢

  • mall整合SpringTask实现定时任务的方法示例

    2023-09-15 18:08:08
  • hadoop运行java程序(jar包)并运行时动态指定参数

    2023-07-27 11:02:10
  • MyBatis ofType和javaType的区别说明

    2021-09-10 22:56:43
  • springboot整合shardingsphere和seata实现分布式事务的实践

    2021-08-10 04:28:37
  • java 命名空间 命名规则第1/2页

    2021-06-06 14:20:19
  • springboot+log4j.yml配置日志文件的方法

    2023-08-07 11:33:17
  • C#不提升自己程序的权限实现操作注册表

    2023-01-24 18:51:31
  • Spring 代理 Bean 获取不到原始 Bean 对象注解解决方法

    2022-10-31 17:06:08
  • java实现发送邮件的示例代码

    2023-07-04 17:00:54
  • Android6.0 消息机制原理解析

    2023-08-06 12:19:44
  • springboot如何开启一个监听线程执行任务

    2022-01-09 08:44:48
  • java实现随机验证码图片生成

    2022-12-08 02:27:00
  • Java判断所给年份是平年还是闰年

    2023-10-21 17:48:59
  • 基于jdk1.8的Java源码详解 Integer

    2023-05-08 11:32:22
  • Spring Boot Admin 进行项目监控管理的方法

    2021-09-01 23:39:19
  • Java之SSM中bean相关知识汇总案例讲解

    2021-11-10 06:16:26
  • c# wpf如何使用Blend工具绘制Control样式

    2022-10-26 09:35:25
  • SpringBoot项目在IntelliJ IDEA中如何实现热部署

    2023-10-29 13:30:22
  • Java设计模式--代理模式

    2023-02-26 21:45:32
  • java使用Socket类接收和发送数据

    2021-05-26 15:28:47
  • asp之家 软件编程 m.aspxhome.com