C#中的替代内联接口实现让我们说这个接口:publicinterfaceMyListener{voidonHandleOne();无效onHandleTwo();}我将此接口作为参数传递:myMethod(MyListenerlistener){//somelogic}当我调用它时,我想像在java中一样进行内联实现:myMethod(newMyListener(){@OverridepublicvoidonHandleOne(){//做工作}@OverridepublicvoidonHandleTwo(){//做工作}});作为替代方案,我创建了一个实现yhis接口类并使用此类调用我的方法:publicclassMyImplementor:MyListener{publicvoidonHandleOne(){//dowork}publicvoidonHandleTwo(){//dowork}}和调用我的方法:myMethod(newMyImplementor())但每次我调用此方法时,此解决方案都需要一个新类(用于不同的行为)也许有一种方法可以使用lambda或以某种方式执行此操作:myMethod(newMyImplementor()=>{//handlemymethods})但这个解决方案每次调用方法时都需要一个新类(针对不同的行为)也许有一种使用lambda的方法或某种方法可以做到这一点,比如是的,给它一个委托参数并传递一个lambda。publicclassMyImplementor:MyListener{privatereadonlyActionhandle1;私有只读动作句柄2;publicMyImplementor(Actionhandle1,Actionhandle2){this.handle1=handle1;this.handle2=handle2;}publicvoidonHandleOne(){handle}1()publicvoidonHandleTwo(){handle2();以上就是C#学习教程:AlternativeInlineInterfaceImplementationinC#分享的所有内容,如果对大家有用,需要进一步了解C#希望大家多多关注教程——myMethod(newMyImplementor(()=>{//handlemethod1},()=>{//Handlemethod2});本文整理自网络,不代表立场,如涉及侵权,请点击联系管理员有权删除,如需转载请注明出处:
