using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
public delegate void del(object obj, CallMeEventArgs e); //声明委托
public event del shout;//声明事件
public void send(object obj, CallMeEventArgs e) //方法1,参数写声明委托的一致.
{
Console.WriteLine("好," + e.name); //输出传递的事件参数的值
}
public void send2(object obj, CallMeEventArgs e) //方法2,参数写声明委托的一致.
{
Console.WriteLine("好呀! " + e.name); //输出传递的事件参数的值
}
//声明事件
public void CallMe(string s)
{
CallMeEventArgs e = new CallMeEventArgs(s); //传递e参数的值
OnCallMe(e); //调用触发事件代码
}
//触发事件
protected void OnCallMe(CallMeEventArgs e)
{
Console.WriteLine(e.name + "来了!");
if (shout != null) //如果事件中有注册的委托
{
shout(this, e); //事件的参数应和委托一样
}
}
//自定义事件参数类型,传递Name值.
public class CallMeEventArgs : EventArgs
{
public string name;
public CallMeEventArgs(string name)
{
this.name = name;
}
}
static void Main(string[] args)
{
Program p = new Program(); //实例化Program的一个实例
p.shout += new Program.del(p.send); //将send方法实例到委托并登记到事件中
p.shout += new Program.del(p.send2);//将send2方法实例到委托并登记到事件中
p.CallMe("小小"); //调用事件
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
public delegate void del(object obj, CallMeEventArgs e); //声明委托
public event del shout;//声明事件
public void send(object obj, CallMeEventArgs e) //方法1,参数写声明委托的一致.
{
Console.WriteLine("好," + e.name); //输出传递的事件参数的值
}
public void send2(object obj, CallMeEventArgs e) //方法2,参数写声明委托的一致.
{
Console.WriteLine("好呀! " + e.name); //输出传递的事件参数的值
}
//声明事件
public void CallMe(string s)
{
CallMeEventArgs e = new CallMeEventArgs(s); //传递e参数的值
OnCallMe(e); //调用触发事件代码
}
//触发事件
protected void OnCallMe(CallMeEventArgs e)
{
Console.WriteLine(e.name + "来了!");
if (shout != null) //如果事件中有注册的委托
{
shout(this, e); //事件的参数应和委托一样
}
}
//自定义事件参数类型,传递Name值.
public class CallMeEventArgs : EventArgs
{
public string name;
public CallMeEventArgs(string name)
{
this.name = name;
}
}
static void Main(string[] args)
{
Program p = new Program(); //实例化Program的一个实例
p.shout += new Program.del(p.send); //将send方法实例到委托并登记到事件中
p.shout += new Program.del(p.send2);//将send2方法实例到委托并登记到事件中
p.CallMe("小小"); //调用事件
Console.ReadLine();
}
}
}
浙公网安备 33010602011771号