【发布时间】:2014-03-12 16:08:07
【问题描述】:
我在 java 中有一个类,它基本上以异步方式执行搜索,我通过侦听器返回结果,我需要在 C# 中编写相同的例程我知道 java 之间存在一些差异,因此无法编写,我我是 c# 的初学者,我至少需要一个视野。
public class Operation {
private List<Operation.Listener> ListEventResult = new ArrayList<Operation.Listener>();
public void Search(String word){
try {
Thread.sleep(3000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
if(ListEventResult.size()>0){
for(Operation.Listener li : ListEventResult){
li.Result("Result for "+word);
}
}
}
public void addEventResult(Listener li){
ListEventResult.add(li);
}
public interface Listener{
public void Result(String result);
}
}
public class Program {
public static void main(String[] args) {
// TODO Auto-generated method stub
Operation op = new Operation();
op.addEventResult(new Operation.Listener() {
@Override
public void Result(String result) {
System.out.println(result);
}
});
op.Search("Facebook");
}
}
【问题讨论】:
-
我没有看到异步部分。
-
有很多重复 - 搜索查询 stackoverflow.com/search?q=[c%23]+java+inline+interface 。 TL;博士; - C# 不支持通过匿名类实现内联接口,但在大多数情况下,简单的委托是解决方案。
-
异步部分是Operation.Search方法,这里是伪代码