相当于Java在C#中的匿名类?
我正在尝试将用java编写的SDK移植到C#。
在这个软件中,有许多具有几种方法的“处理程序”接口(例如:使用和几种不同的故障方法)。然后,在调用类中匿名实现和实例化此接口,并将其传递给该类的方法。这是一个异步方法,并且有几个地方可能会失败或调用另一个方法(传递处理程序)。这样,匿名实现 可以引用调用 的类中的私有方法。attemptSomethingHandler
success()
attemptSomething
SomethingModel
attemptSomethingHandler
attemptSomething
在 C# 中,无法匿名实现接口。我可以显式实现一个新类,但此实现对于此调用类是唯一的,并且不用于其他任何用途。更重要的是,我无法访问调用类中的私有方法,我需要并且不想公开这些方法。
基本上,我需要根据类方法中发生的情况运行与调用类不同的代码。SomethingModel
我一直在阅读委托,但这需要传递处理程序接口中有多少个方法的委托(据我所知)。在 C# 中执行此操作的适当方法是什么?我觉得我错过了一个非常常见的编程策略。必须有一种简单,干净的方法来构建和解决这个问题。