在某个类方法 A 中,我需要调用一个库方法 B,它以 anIProgress<Object>
作为参数。
通常,我可能会IProgress<Object>
作为 A 所在类的一部分实现,然后将“this”传递给方法 B。或者我可能会创建一个新类,其唯一目的是IProgress<Object>
正确实现和处理它——那么在这种情况下,我d 创建该类的实例并将其传递给 B。
但我真正想要的是让我的实现IProgress<Object>
出现在我调用 B 的方法中,这样调用代码和IProgress<Object>
实现之间的视觉断开就会减少。(我认为我的 IProgress 实现是调用方法的一种私有的、非共享的细节,因此我不希望我的实现IProgress<Object>
在一个完全独立的方法中,可能是另一个类)。
我一直在尝试做的是使用一个 lambda,我将在其中定义我的短进度处理,然后以某种方式将此 lambda 传递给 B,如下所示:
method in class A {
...
Action<Object> Report = (m) => { // do something useful with m };
B(Report)
}
method B(IProgress<Object> reporter) {
reporter.Report(some object)
}
当然,我知道为什么这不能按原样工作 - B 想要一个实现的对象,IProgress<Object>
而我将它交给一个 Action 对象。
有什么方法可以实现我想要实现的目标吗?IProgress<Object>
(如果出现在方法 A 中,IE 有我的实现吗?