问题描述
1,根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:namespacetest{publicdelegatevoidOnDBOperate();publicclassUserControlBase:System.Windows.Forms.UserControl{publiceventOnDBOperateOnNew;privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse){if(e.Button.Equals(BtnNew)){//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。}}}答:if(OnNew!=null)OnNew(this,e);在这题中OnDBOperate委托无参数但是答案中OnNew(this,e);有参数不对吧2,usingSystem;classA{publicA(){PrintFields();}publicvirtualvoidPrintFields(){}}classB:A{intx=1;inty;publicB(){y=-1;}publicoverridevoidPrintFields(){Console.WriteLine("x={0},y={1}",x,y);}当使用newB()创建B的实例时,产生什么输出?答:X=1,Y=0;x=1y=-1应该是x=1,y=03,Strings=newString("xyz");创建了几个StringObject?答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。编译都不能通过何来对象????上面3题网上随处可见答案都一样;求解释
解决方案
解决方案二:
1.event的委托是预定义的EventHandler...2.最基础的多态...3.没有这个重载,这是java语法...就算有,在.NET中对象一词指实例...这种题都不会说明你门都没入,离面试还远得很...这类题也不适合面试,最多能当专业课前几周的学生作业...