编写的是一个控制台程序的例子
=====Player.cs文件内容====
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 播放器事件
{
//定义自定义事件参数类,可以带上播放的歌名
public class PlayerEventArgs : EventArgs
{
public PlayerEventArgs()
{
}
public PlayerEventArgs(string name)
{
this.name = name;
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}
public delegate void PlayerEventHandler(object sender, PlayerEventArgs e);//声明事件代理
public class Player
{
public event PlayerEventHandler PlayComplete; //声明事件
public Player()
{
}
public Player(string songName)
{
this.songName = songName;
}
private string songName;
public string SongName
{
get { return songName; }
set { songName = value; }
}
public void Play()
{
Console.WriteLine("正在播放-->" + this.songName);
//判断是否注册事件
if (PlayComplete != null)
{
PlayComplete(this,new PlayerEventArgs(this.songName)); //调用事件
}
}
}
}
=====Program.cs文件内容====
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 播放器事件
{
class Program
{
static void Main(string[] args)
{
Player myPlayer = new Player("爱你一万年");
myPlayer.PlayComplete += new PlayerEventHandler(myPlayer_PlayComplete);
myPlayer.Play();
Console.ReadLine();
}
static void myPlayer_PlayComplete(object sender, PlayerEventArgs e)
{
Console.WriteLine(e.Name + "播放完毕!");
}
}
}