2015-01-15 146 views
-5

我正在从java(Android)到C#(Windows Phone)的代码移植,但我不知道如何做到这一点,这里是我试图转换的代码:转换Java代码到C#

private void executeSingleOperation() { 

     operation.execute(new OperationResult() { 
      @Override 
      public void onSuccess(Object obj) { 
       //do something 
       this.executeSingleOperation(); 
      } 

      @Override 
      public void onFail(Error err) { 
       //andle the error 
      } 
    }); 
} 

OperationResult是一个接口,看起来像这样:提前

回答

6

public interface OperationResult { 

    public void onSuccess(Object obj); 

    public void onFail(Error err); } 

感谢有没有相当于匿名内部类在C#。对于单方法版本,通常可以使用委托而不是接口,然后使用lambda表达式(或者只是常规方法)来指定实现。

否则,只需使用常规类来实现接口。

在这种情况下,您可能需要将两者混合在一起,具有接口的实现,接口本身需要构造函数中的两个委托 - 一个用于失败,一个用于成功。这真的取决于上下文,目前我们还没有很多。我会说,如果你对C#相当陌生,你最好在控制台应用程序的背景下调查它,作为更简单的实验环境。

+0

你可以发表一个例子我真的很困惑,我是新的c# – frenk91 2015-01-15 16:30:34

+1

@ frenk91:目前尚不清楚什么让你感到困惑。这听起来像你应该阅读关于接口的教程,也可能是另一个关于代表的教程。 – 2015-01-15 17:03:57