请交在网上看到的一道C#面试题

seawh411 2008-07-08 09:54:15
根据delegate的知识,完成以下用户控件中代码片段的填写。
namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
public event OnDBOperate OnNew;
private void toolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请在这里补齐代码用来调用OnDBOperate委托签名的OnNew事件。
}
}
}

答: if( OnNew != null ) OnNew( this, e );
请问答案中的这段代码调用后是什么意思?
期待中......
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beancurd005 2008-07-08
  • 打赏
  • 举报
回复
怎么不结贴哦?没有分啊???失望。。。
beancurd005 2008-07-08
  • 打赏
  • 举报
回复
挂起事件的语句类似:
UserControlBase userControl1;

userControl1.OnNew + = new OnDBOperate(ProcessEvent);

void ProcessEvent(object sender, EventArgs e)
{
//put your code to process your event
}
beancurd005 2008-07-08
  • 打赏
  • 举报
回复
委托就是方法的引用

在其他地方挂起这个事件委托后,如果事件触发后,就可以响应该事件。

if( OnNew != null ) //判断事件是否已经被挂起

OnNew( this, e ); //若挂起,则可以触发该事件

挂起的事件可以在其他cs文件中,不一定要求在本cs文件中

只要挂起了该事件,当执行到if语句时,就可以激发该事件!


一品梅 2008-07-08
  • 打赏
  • 举报
回复
if(e.Button.Equals(BtnNew))
{
//请在这里补齐代码用来调用OnDBOperate委托签名的OnNew事件。
}
}
}

答: if( OnNew != null ) OnNew( this, e );
请问答案中的这段代码调用后是什么意思?
期待中......
================
一旦委托调用,就立即触发此事件。
wbyfantasy 2008-07-08
  • 打赏
  • 举报
回复
OnNew是你定义的一个OnDBOperate类型的事件委托,相当于产生一个事件吧? 不知道这么理解对不?
GhostAdai 2008-07-08
  • 打赏
  • 举报
回复
老不结贴的多的是,耐心点吧,几个月后不结交版主处理。

110,010

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧