C#中的替代内联接口实现

我想在C#中使用内联接口实现,但是阅读像这样或者这样的post我发现它不像Java那样。

假设这个界面:

public interface MyListener { void onHandleOne(); void onHandleTwo(); } 

我将此接口作为参数传递:

  myMethod(MyListener listener){ //some logic } 

当我调用它时,我想像在java中一样进行内联实现:

 myMethod(new MyListener () { @Override public void onHandleOne() { //do work } @Override public void onHandleTwo() { //do work } }); 

作为替代方案,我创建了一个实现yhis接口的类,并使用此类来调用我的方法:

 public class MyImplementor : MyListener { public void onHandleOne() { //do work } public void onHandleTwo() { //do work } } 

并调用我的方法: myMethod(new MyImplementor())但是这个解决方案每次我都会调用这个方法时需要一个新类(对于不同的行为)可能有一种方法使用lambda或以某种方式这样做:

myMethod(new MyImplementor() =>{//handle my methods})

但是这个解决方案每次我都会调用这个方法需要一个新类(对于不同的行为)也许有一种方法使用lambda或者某种方式来做它就像

是的,给它一个委托参数并传递一个lambda。

 public class MyImplementor : MyListener { private readonly Action handle1; private readonly Action handle2; public MyImplementor(Action handle1, Action handle2) { this.handle1 = handle1; this.handle2 = handle2; } public void onHandleOne() { handle1(); } public void onHandleTwo() { handle2(); } } 

然后你可以用它

 myMethod(new MyImplementor(()=>{//handle method1}, ()=>{//Handle method2});