为IObservable实现自己的运算符
来源:互联网 发布:华为 海思 媒体算法 编辑:程序博客网 时间:2024/06/07 02:19
您可以通过为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中添加新的运算符是扩展其功能的一种方法。 但是,您还可以通过将现有运算符包含到更专门和更有意义的运算符中来提高代码可读性。
0 0
- 为IObservable实现自己的运算符
- 运算符重载之其它类型转化为自己
- 自己对于 “位运算符” 的理解
- 1-自己实现string类(赋值运算符函数)
- (位运算符)请自己实现两个整数变量的交换 ^的特点 (面试题)
- 创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数, 运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要 加入自己的成员变量或成员函数
- 如何实现自己特定的内存管理,如何正确替换C++中的全局运算符new和delete
- 运算符的重载-封装自己的字符串模块
- 重载一个+运算符、<<运算符和>运算符。实现对分数的运算
- C++之运算符的重载实现大数的运算
- 自己实现的原码、反码、补码、移码的表示与加减运算软件
- 运算符号重载之自己转化为其它
- 使用运算符重载实现复数的加法运算
- 【运算符重载-数组类运算的实现】
- 自己实现自己的String.....
- 两个类型为varchar的字段保存的时间,进行时间差运算。运算符无效.运算符为subtract,类型为varchar
- 关于位运算符实现的问题
- 矩阵类的实现,运算符重载
- zabbix简介及安装
- 开源项目地址
- Android 跳往 魅族 小米权限管理自启动(6.0)
- Oracle12c -Invisible Columns 测试
- ButterKnife失效的解决办法
- 为IObservable实现自己的运算符
- 监控利器---Zabbix(一)
- c++语言中类型的转换
- Flex 布局教程
- AIX7.1安装zabbix-agent
- rails Render和layout基础学习
- C#中使用MD5加密的方法
- 标准C++中的string类的用法总结
- Modbus协议