为何我定义的委托名,录入new单词后,不会自动列出呢?是本来这样还是我代码有误造成不能自动列出呢?
几个文件的代码如下:
program.csusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;namespace Ch13Ex02
{    class Program
    {
        static void Main(string[] args)
        {
            Connection myConnection = new Connection();
            Display myDisplay = new Display();            //为何下面这行代码中,new 后面的 MessageHandle 不会自动列出呢?(这是在Connection类中定义的委托呀!)
            myConnection.messageArrived += new MessageHandle(myDisplay.DisplayMessage);
            myConnection.Connect();
            Console.WriteLine("the end");
            Console.ReadKey();
        }
    }
}
connection.cs:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;namespace Ch13Ex02
{
    //定义一个委托类型变量
    public delegate void MessageHandle(string messageText);    public class Connection
    {
        public event MessageHandle messageArrived;
        private Timer pollTimer;        public Connection()
        {
            pollTimer = new Timer(100);
            pollTimer.Elapsed += new ElapsedEventHandler(CheckForMessage);
        }        public void Connect()
        {
            pollTimer.Start();
        }        public void Disconnect()
        {
            pollTimer.Stop();
        }        private static Random random = new Random();        private void CheckForMessage(object source, ElapsedEventArgs e)
        {
            Console.WriteLine("checking ----------------------------------------------");
            if ((random.Next(9) == 0) && messageArrived != null)
            {
                messageArrived("Hello !!!");
            }
        }
    }
}
display.cs:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Ch13Ex02
{
    class Display
    {
        public void DisplayMessage(string message)
        {
            Console.WriteLine("message arrived:{0}",message);
        }
    }
}

解决方案 »

  1.   

    //为何下面这行代码中,new 后面的 MessageHandle 不会自动列出呢?(这是在Connection类中定义的委托呀!)
    myConnection.messageArrived += new MessageHandle(myDisplay.DisplayMessage);MessageHandle是我在Connection类中定义的委托呀,
    我想问,它应该自动列出吗?即我输入:
    myConnection.messageArrived += new 以后,是不是应该自动列出?
    我这里没有自动列出,我不知是我代码有问题,还是本来就不会自动列出的,
    如果应该列出,我的代码哪有问题呢?
    另外,这个代码执行时不报错,没有任何问题的!
      

  2.   

    本来就不会自动填写,你写+=后,按tab可以自动填写。但后面如果你自己new。那因为你可以new一个其子类的委托,所以不会自动填充。不过这只是猜测,操作行为就是在+=后面按tab.