学些C#中的事件与委托,有一点疑惑。

Tudouvvv 发布于 2017/04/04 13:47
阅读 95
收藏 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 例题12_9
{
    public delegate void EventHandler(object sender, EventArgs e);  //这里的Eventhandler只是一个名称,理论上可以为任意值 ,对吗?  
    class Program
    {
        public event EventHandler print;                             //这里的Eventhandler为类型
        public void f(object sender,EventArgs e)
        {
            Console.WriteLine("调用方法f()");
        }
      
        static void Main(string[] args)
        {
            Program p = new Program();
            p.print += new EventHandler(p.f);  //这里的EventHandler是指委托的名称吗? 那为什么我换了名称以后还是可以运行? 如果该委托只有一个参数,那么给事件注册方法时就必须和委托的名称一样才可以运行,两者有什么不一样吗?
            if(p.print !=null)
            {
                p.print(null, null);
            }
            Console.ReadLine();

        }
    }
}
 

加载中
0
f
fdc2017
p.print += new EventHandler(p.f); 这里应该是事件
0
艾恩anlige
声明委托,实例化委托,调用委托。事件可以说是特殊的委托。不知道你所谓的“改名字”具体是怎么实施的
返回顶部
顶部