前段时间学习了事件委托,由于学习的还不够深入过了几天不用后,感觉又忘了。所以今天抽空将自己写的例子简单的记录下,方便后期使用。
1. 声明事件和委托
public delegate void InRoomOptionDelegate(string content, DateTime dataTime);
public event InRoomOptionDelegate InRoomOptionEvent;
2. 定义方法使用事件
// 写操作日志
public void WriteOptionLog(string content, DateTime dt)
{
InRoomOptionEvent(content, dt);
}
3. 订阅事件
inRoom.InRoomOptionEvent += new InRoomFrm.InRoomOptionDelegate(WriteOptionLog);
// 写操作日志
private void WriteOptionLog(string content, DateTime dt)
{
this.rtbOptionLog.AppendText(dt.ToString() + ":" + "" + content + "\n");
}
// 构建DateTalbe
private DataTable GetUserList()
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", Type.GetType("System.Int32"));
dt.Columns.Add("UserID", Type.GetType("System.String"));
dt.Columns.Add("UserName", Type.GetType("System.String"));
for (int i = 1; i <= 10;i++ )
{
DataRow dr = dt.NewRow();
dr[0] = i; ;
dr[1] = "user" + i.ToString();
dr[2] = "ZhangSan"+ i.ToString();
dt.Rows.Add(dr);
}
return dt;
}
接口和委托 实例