F#:Add 方法和 IObserver<> 的关系是什么

F#: What is the relationship of an Add method and an IObserver<>

我从 Mark Seeman 的 Pluralsight 视频中导出了以下代码工作代码。我不明白最后一行是如何工作的。

let sharpObjectCollection = ConcurrentBag<Envelope<SharpObject>>()
let sharpObjectSubject = new Subjects.Subject<Envelope<SharpObject>>()
sharpObjectSubject.Subscribe sharpObjectCollection.Add |> ignore

正在浏览documentation for Subscribe, I see that it takes an IObserver as an argument, but I am passing it the ConcurrentBag.Add method

这是怎么回事?这是 F# 的特性吗?我也可以在 C# 中执行此操作吗?

看起来它正在调用 this extension method,它定义了 Subscribe 的重载,它采用 Action<T> onNext 处理程序。您也可以在 C# 中执行此操作:

var bag = new ConcurrentBag<Envelope<SharpObject>>();
var subject = new Subject<Envelope<SharpObject>>();
subject.Subscribe(bag.Add);