为什么java可以实例化接口,这种语法和C#怎么对应的?

privatevoiddoWebLogin(StringverifyCode,finalProcActionFuturefuture){
LoginModulelogin=getContext().getModule(QQModule.Type.LOGIN);
QQAccountaccount=getContext().getAccount();
login.webLogin(account.getUsername(),account.getPassword(),
account.getUin(),verifyCode,newQQActionListener(){//此处的QQActionListener是个接口,在下面
publicvoidonActionEvent(QQActionEventevent){
if(event.getType()==QQActionEvent.Type.EVT_OK){
doCheckLoginSig((String)event.getTarget(),future);
}elseif(event.getType()==QQActionEvent.Type.EVT_ERROR){
QQExceptionex=(QQException)(event.getTarget());
if(ex.getError()==QQErrorCode.WRONG_CAPTCHA){
doGetVerify(ex.getMessage(),future);
}else{
future.notifyActionEvent(
QQActionEvent.Type.EVT_ERROR,
(QQException)event.getTarget());
}
}
}
});
}
publicinterfaceQQActionListener{
publicvoidonActionEvent(QQActionEventevent);
}
那么这种语法在C#里怎么【更好的】移植呢?
我现在的做法是重写一个类,继承QQActionListener,然后在实例化。
但是这种写法在这个项目中比较多,所以要为了一个方法就要重新写一个类,实在是太难看了。
请问有什么方法能更好的该写如上面的那样的java语法到C#吗
慕少森
浏览 261回答 2
2回答

潇湘沐

你要知道JAVA这样写的意义在哪~最常见的用法是用于您代码里提出来的这种方法。其实本质上他就是传一个方法进去使用。OK~c#都有delegate了,都有Lambda了,干嘛还要用这样笨重的语法呢?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript