2015-01-15 149 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