.NET中的事件基本上是代理/委托实现的,如
this.Load += new System.EventHandler(this.Form1_Load);

解决方案 »

  1.   

    更适用于Framework相对于Application
      

  2.   

    小程序确实体会不到委托的好处,反而会使程序变得很别扭,但是当程序到达一定复杂程度后,就能体现出来了,以后lz会体会到的。
    不过在有些地方是必须使用委托的,比如线程间操作UI控件,异步的回调函数等等。
      

  3.   

    C#里没有指针(不考虑unsafe),delegate就相当于函数指针。有些地方你可能不得不用函数指针的时候,就可以使用delegate。如在C#里调用API函数createthread时就需要函数指针,就需要用到delegate
      

  4.   

    委托是触发式的.比如在错误处理中,你当然可以用try..catch来处理,但并不能保证捕获所有的错误.你也不知道错误什么时候发生,所以你可以用委托来处理.protected override void OnInit(EventArgs e)
    {
    base.OnInit(e);
    this.Error += new System.EventHandler(this.ZTCPage_Error);
    }
    protected void ZTCPage_Error(object sender, System.EventArgs e)
    {
    string errMsg;
    Exception currentError = Server.GetLastError(); errMsg = "<link rel=\"stylesheet\" href=\"../Css/ZTC.CSS\">";
    errMsg += "<h1>Page Error</h1><hr/>An unexpected error has occurred on this page. The system " +
    "administrators have been notified. Please feel free to contact us with the information " +
    "surrounding this error.<br/>"+
    "The error occurred in: "+Request.Url.ToString()+"<br/>"+
    "Error Message: <font class=\"ErrorMessage\">"+ currentError.Message.ToString() + "</font><hr/>"+
    "<b>Stack Trace:</b><br/>"+
    currentError.ToString();
    errMsg += "<br><hr/><br><input type='button' value='返回前一页' onclick='history.back(-1);'>"; WriteErrorToText(Request.Url.ToString(),currentError.Message.ToString(),currentError.ToString()); Response.Write( errMsg );
    Server.ClearError();
    }
      

  5.   

    没有委托 就没有安全指针用
    没有委托 就没有事件用
    没有委托 就没有回调用
    没有委托 也没有异步调用
    没有委托 就没有多个进程
    没有委托 就没有windows form
    没有委托 那么你也不用学习.net 了
    那么你说委托 有什么用
      

  6.   

    没有委托 就没有安全指针用
    没有委托 就没有事件用
    没有委托 就没有回调用
    没有委托 也没有异步调用
    没有委托 就没有多个进程
    没有委托 就没有windows form
    没有委托 那么你也不用学习.net 了
    那么你说委托 有什么用
    ___________________________________说得好!
      

  7.   

    没有委托 就没有安全指针用
    没有委托 就没有事件用
    没有委托 就没有回调用
    没有委托 也没有异步调用
    没有委托 就没有多个进程
    没有委托 就没有windows form
    没有委托 那么你也不用学习.net 了
    那么你说委托 有什么用
    ----------------------------
    说得好,呵呵
      

  8.   

    http://www.cppblog.com/zhuweisky/archive/2005/09/11/193.aspx
    看看c++里事件机制的实现。看的懂的话。你就知道为什么要用委托了。就是为了实现事件机制。然后发现委托这东西他们做的狠安全,干脆就取消了函数指针取而代之。美其名曰:安全。
      

  9.   

    这个例子不是C#高级编程里的例子吗?这章的最后介绍了委托的好处呀。
    在这个例子中,只要告诉Sort数组和比较的函数(委托,函数指针)Sort只管算法。就可以完成任务了。而不用管类型。
      

  10.   

    C# winform 开发群,群号:57718204,我们期待您的加入!!