using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;namespace ConsoleApplication1
{
//事件的类,初始化,继承了EventArgs类
#region
class MyChangeEventArgs:EventArgs
{
string sku;
int change;
public MyChangeEventArgs(string sku, int change)
{
this.sku = sku;
this.change = change;
Console.WriteLine("现在开始初始化事件类");
} public string Sku
{
get
{
return sku;
}
set
{
sku = value;
}
} public int Change
{
get
{
return change;
}
set
{
change = value;
}
}
}
#endregion
//class end
//
class MyManager //发布器
{
public delegate void MyChangeEventHandler(object sender, MyChangeEventArgs e); public event MyChangeEventHandler OnMyChangeHandler;
public void UpdateMy(string sku, int change)
{
if (change == 0)
return;
MyChangeEventArgs e = new MyChangeEventArgs(sku, change);
if (OnMyChangeHandler != null)
OnMyChangeHandler(this, e); Console.WriteLine("更新成功");
}
} class MyWatcher //签署器
{
public MyWatcher(MyManager myManager)
{
this.myManager = myManager;
myManager.OnMyChangeHandler += new MyManager.MyChangeEventHandler(OnMyChange);
Console.WriteLine("布线成功"); }
void OnMyChange(object sender,MyChangeEventArgs e)
{
int change=e.Change;
Console.WriteLine("Part'{0} was {1} by {2} units",e.Sku,change>0?"increase":"decreased",Math.Abs(e.Change));
}
MyManager myManager;
}
class EventApp1
{
public static void Main(string[] args)
{
MyManager myManager = new MyManager();
Console.WriteLine("创建了一个MyManager类"); MyWatcher myWatch = new MyWatcher(myManager);
Console.WriteLine("创建了一个MyWatcher类"); myManager.UpdateMy("102 009 501", -2); myManager.UpdateMy("102 009 501", 5);
Console.ReadLine();
}
}
} 请问以下几句的意思:
public delegate void MyChangeEventHandler(object sender, MyChangeEventArgs e); public event MyChangeEventHandler OnMyChangeHandler;
MyChangeEventArgs e = new MyChangeEventArgs(sku, change);
if (OnMyChangeHandler != null)
OnMyChangeHandler(this, e);
void OnMyChange(object sender,MyChangeEventArgs e)
using System.Collections.Generic;
using System.Text;
using System.Threading;namespace ConsoleApplication1
{
//事件的类,初始化,继承了EventArgs类
#region
class MyChangeEventArgs:EventArgs
{
string sku;
int change;
public MyChangeEventArgs(string sku, int change)
{
this.sku = sku;
this.change = change;
Console.WriteLine("现在开始初始化事件类");
} public string Sku
{
get
{
return sku;
}
set
{
sku = value;
}
} public int Change
{
get
{
return change;
}
set
{
change = value;
}
}
}
#endregion
//class end
//
class MyManager //发布器
{
public delegate void MyChangeEventHandler(object sender, MyChangeEventArgs e); public event MyChangeEventHandler OnMyChangeHandler;
public void UpdateMy(string sku, int change)
{
if (change == 0)
return;
MyChangeEventArgs e = new MyChangeEventArgs(sku, change);
if (OnMyChangeHandler != null)
OnMyChangeHandler(this, e); Console.WriteLine("更新成功");
}
} class MyWatcher //签署器
{
public MyWatcher(MyManager myManager)
{
this.myManager = myManager;
myManager.OnMyChangeHandler += new MyManager.MyChangeEventHandler(OnMyChange);
Console.WriteLine("布线成功"); }
void OnMyChange(object sender,MyChangeEventArgs e)
{
int change=e.Change;
Console.WriteLine("Part'{0} was {1} by {2} units",e.Sku,change>0?"increase":"decreased",Math.Abs(e.Change));
}
MyManager myManager;
}
class EventApp1
{
public static void Main(string[] args)
{
MyManager myManager = new MyManager();
Console.WriteLine("创建了一个MyManager类"); MyWatcher myWatch = new MyWatcher(myManager);
Console.WriteLine("创建了一个MyWatcher类"); myManager.UpdateMy("102 009 501", -2); myManager.UpdateMy("102 009 501", 5);
Console.ReadLine();
}
}
} 请问以下几句的意思:
public delegate void MyChangeEventHandler(object sender, MyChangeEventArgs e); public event MyChangeEventHandler OnMyChangeHandler;
MyChangeEventArgs e = new MyChangeEventArgs(sku, change);
if (OnMyChangeHandler != null)
OnMyChangeHandler(this, e);
void OnMyChange(object sender,MyChangeEventArgs e)
第二行 用这个委托类型定义了一个事件委托——将类型实例化
第三行 定义了一个事件参数——
第四行 如果成功获取非空的委托,则执行OnMyChangeHandler事件
第五行 事件OnMyChange的定义
myManager.OnMyChangeHandler += new MyManager.MyChangeEventHandler(OnMyChange);OnMyChangeHandler 又连接到了OnMyChange事件因为这两个事件同是MyChangeEventHandler这个委托类型的,所以可以用+=号直接挂接起来。