将 java 代码转换为 C#
Converting java code to c#
我正在将此代码从 java(Android) 移植到 C#(Windows Phone) 但我不知道该怎么做,这是我正在尝试转换的代码:
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 是一个接口,如下所示:
public interface OperationResult {
public void onSuccess(Object obj);
public void onFail(Error err); }
提前致谢
在 C# 中没有等效的匿名内部 classes。对于单一方法版本,您通常可以使用委托而不是接口,然后使用 lambda 表达式(或只是常规方法)来指定实现。
否则,只需使用常规class实现接口即可。
在这种情况下,您可能想要混合这两者,实现接口本身在构造函数中接受两个委托——一个用于失败,一个用于成功。这真的取决于上下文,目前我们没有太多这样的内容。
我想说的是,如果您是 C# 的新手,最好在控制台应用程序的上下文中研究它,因为它是一个 更 更简单的实验环境.
我正在将此代码从 java(Android) 移植到 C#(Windows Phone) 但我不知道该怎么做,这是我正在尝试转换的代码:
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 是一个接口,如下所示:
public interface OperationResult {
public void onSuccess(Object obj);
public void onFail(Error err); }
提前致谢
在 C# 中没有等效的匿名内部 classes。对于单一方法版本,您通常可以使用委托而不是接口,然后使用 lambda 表达式(或只是常规方法)来指定实现。
否则,只需使用常规class实现接口即可。
在这种情况下,您可能想要混合这两者,实现接口本身在构造函数中接受两个委托——一个用于失败,一个用于成功。这真的取决于上下文,目前我们没有太多这样的内容。
我想说的是,如果您是 C# 的新手,最好在控制台应用程序的上下文中研究它,因为它是一个 更 更简单的实验环境.