c# - 有用或不重要的双重接口(interface)的例子

标签 c# functional-programming system.reactive reactive-programming category-theory

最近 Erik Meijer 和其他人展示了 IObservable/IObserver 如何成为 dual IEnumerable/IEnumerator。它们是双重的这一事实意味着在一个接口(interface)上的任何操作在另一个接口(interface)上都有效,从而为 Reactive Extentions for .Net 提供了理论基础。

是否存在其他双接口(interface)?我对任何示例都感兴趣,而不仅仅是基于 .Net 的示例。

最佳答案

另一个例子是 TextReaderTextWriter,尽管噪声比可观察对象和可枚举对象的情况还要多。原则上,类型签名是:

interface ITextReader {
  // Read: void -> int
  int Read();
}

interface ITextWriter {
  // Write: int -> void
  void Write(int val);
}

关于c# - 有用或不重要的双重接口(interface)的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125536/

相关文章:

c# - 接收 : Wait for several observables to complete

c# - 从 DataTable 中删除所有没有数据的列

c# - 在读取全局字符串之前锁定?

c# - 如何在 ASP.NET MVC Web 应用程序中使用 log4net 异步登录而不用尽所有可用线程?

scala - 设计从 channel 读取的引用透明函数

.net - 使用 Reactive Extensions (Rx) 调度程序时创建 STA 线程

c# - LINQ 查询 SelectMany() 返回空值

带参数的 Python 列表过滤

javascript - 柯里化(Currying) JavaScript - 调用

c# - 如何在 Rx.Net 中使用异步累加器实现 ScanAsync 运算符?