我希望在C#中使用内联接口实现,但是通过阅读这篇文章或这篇文章等我发现它不像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
}
});
作为替代方案,我创建了一个实现了该接口的类,并使用该类来调用我的方法:
public class MyImplementor : MyListener {
public void onHandleOne() {
//do work
}
public void onHandleTwo() {
//do work
}
}
并且调用我的方法:myMethod(new MyImplementor())
但是这种解决方案每次调用该方法都需要一个新的类(用于不同的行为),也许有一种使用lambda或某种方式来实现它的方法:
myMethod(new MyImplementor() =>{//处理我的方法})
onHandleOne
和onHandleTwo
实现,是吗? - ValentinMyImplementor
类在构造函数中接受Action
实例并将它们存储在私有字段中。然后在方法中调用这些操作。 - Yacoub Massad