【发布时间】:2017-03-24 18:24:51
【问题描述】:
我有一个类,其中有一个接口,如下所示:
public class hcmTerminal {
... Code
public interface onDataReceived {
void isCompleted(bool done);
}
}
在这个类中我有公共财产:
public onDataReceived mDataReceived;
然后我有一个函数来设置委托:
public void setDataReceived(onDataReceived dataReceived) { mDataReceived = dataReceived; }
在 hcmTerminal 类中,我正在调用委托:
mDataReceived.isCompleted(true);
但我无法弄清楚调用该委托时实际获取的语法,在 java 中我可以去:
myTerminal.setDataReceived(new hcmTerminal.onDataReceived(){
@Override
public void isCompleted(boolean done){
... Code
}
});
但如果我在 C# 中尝试,我会得到:
无法创建抽象或接口的实例 'hcmTerminal.onDataReceived'
我以前不必在 C# 中创建接口。此代码来自我在 Java 中的实现方式。
【问题讨论】:
-
我非常强烈建议您在编写 C# 时遵循 .NET 的命名约定,在编写 Java 时遵循 Java。目前你违反了这两个。
-
只是让您知道接口的方法不是委托。 C# 使用委托类型而不是接口。但是,如果您使用接口,则必须创建一个实现该接口的类。
-
至于您的界面 - 您是否有任何理由创建界面而不是委托?你谈论一个委托,但你声明一个接口......
-
我不确定我是否找到了最好的副本,更多 - bing.com/…