委托和事件
namespace Program
{
class Program
{
//参数的设置(可单独写成一个类变成全局变量);
public class ProxyEventArgs : EventArgs
{
public ProxyEventArgs(int a, int b)
{
A = a;
B = b;
}
//属性可以限制和控制值的范围;
public int A
{
get;
set;
}
public int B
{
set;
get;
}
}
//事件的发布(可单独写成一个类变成全局类)
public class Proxy
{
public delegate void ProxyCalHandler(object sender, ProxyEventArgs args);
public event ProxyCalHandler CalEvent = null;
private int _state = 0;
public int sate
{
get { return _state; }
set { _state = value; }
}
public void Cal(int a, int b)
{
if (CalEvent != null)
{
ProxyEventArgs args = new ProxyEventArgs(a,b);
CalEvent(this,args );//this表示一个实例化的对象,将参数args传递给这个对象。
}
}
}
//事件的订阅
public static void Plus(object sender, ProxyEventArgs args)
{
Console.WriteLine("{0}+{1}={2}",args.A ,args .B ,args .A +args .B );
Console.WriteLine();
}
public static void Minus(object sender, ProxyEventArgs args)
{
Console.WriteLine("{0}-{1}={2}", args.A, args.B, args.A - args.B);
Console.WriteLine();
}
public static void Multiply(object sender, ProxyEventArgs args)
{
Console.WriteLine("{0}*{1}={2}",args .A ,args .B ,args .A *args .B );
Console.WriteLine();
}
static void Main(string[] args)
{
Proxy proxy = new Proxy();
proxy.CalEvent+= Plus;
proxy.CalEvent += Multiply;
proxy.Cal(1,2);
Console.ReadKey();
}
}
}
浙公网安备 33010602011771号