回 帖 发 新 帖 刷新版面

主题:[em10][em10]请教~!C# 事件!

using System;
using System.Collections.Generic;
using System.Text;

namespace 控制台应用程序
{
    public delegate void pp(object a, EventArgs e);    //新建一个委托,该委托用于事件所以必须有参数object和EventArgs
    public class d  //创建一个事件类
    {
        public event pp p;  //将该委托定义成事件
        public void ss(object a, EventArgs e)  //定义一个对于事件处理的方法,该方法用于事件所以必须有参数object和EventArgs
        {
            Console.WriteLine("激活~~激活~~");  //方法的动作
        }
    }
    class Program
    {
        
        static void Main(string[] args)
        {
            int y = 10;
            d d1 = new d();  //将事件实例化
            d1.p += new pp(d1.ss);  //给事件实例d1.p添加事件处理方法d1.ss
            do
            {
                if (y == 2)  //如果y=2时激活事件处理程序
                {
                 //这里应该怎样写才能激活事件?   
                }
                Console.WriteLine(y);
            } while (y--!=0);
            
            Console.ReadKey();
        }
    }
}
[em10][em10]

回复列表 (共3个回复)

沙发

d1.p(参数);就可以了

板凳

能否把你运行通过的代码贴上来,我想的也是d1.p(参数);这样就能通过,但是编译器说不能,只能在d1.p后用+=运算符连接,所以不明白上来请教

3 楼

d1.p(sender, eventargs)这样,参数自己填

其实对于这个程序,不需要什么参数,用空委托就可以了

我来回复

您尚未登录,请登录后再回复。点此登录或注册