Delegate的使用实例
来源:互联网 发布:文件资源管理器php 编辑:程序博客网 时间:2024/05/06 08:22
一 类的定义
class MyFileSystemWatch
...{
定义方法#region 定义方法
public void CreateFile(string fileName)
...{
MyFileSystemEventArgs e = new MyFileSystemEventArgs(fileName, MyChangeType.Create);
FileCreated.Invoke(this, e);
Console.WriteLine("{0} is create at {1}", fileName, DateTime.Now);
}
public void ModifyFile(string fileName)
...{
MyFileSystemEventArgs e = new MyFileSystemEventArgs(fileName, MyChangeType.Modify);
FileModifyed.Invoke(this, e);
Console.WriteLine("{0} is Modify at {1}", fileName, DateTime.Now);
}
public void DeleteFile(string fileName)
...{
MyFileSystemEventArgs e = new MyFileSystemEventArgs(fileName, MyChangeType.Delete);
FileDeleted.Invoke(this, e);
Console.WriteLine("{0} is Delete at {1}", fileName, DateTime.Now);
}
public void RenameFile(string fileName, string newFilename)
...{
MyReNameEventArgs e = new MyReNameEventArgs(fileName, newFilename, MyChangeType.Delete);
FileRenamed.Invoke(this, e);
Console.WriteLine("{0} is rename to {1} at {2}", fileName, newFilename, DateTime.Now);
}
#endregion
定义事件#region 定义事件
public event MyFileSystemEventHandler FileCreated;
public event MyFileSystemEventHandler FileModifyed;
public event MyFileSystemEventHandler FileDeleted;
public event MyRenameEventHandler FileRenamed;
#endregion
}
public delegate void MyFileSystemEventHandler(object sender, MyFileSystemEventArgs e);
public delegate void MyRenameEventHandler(object sender, MyReNameEventArgs e);
构造事件的参数#region 构造事件的参数
public class MyReNameEventArgs : EventArgs
...{
public string FileName;
public string NewFilNname;
public MyChangeType ChangeType;
public MyReNameEventArgs(string fileName, string newFileName, MyChangeType myChangeType)
...{
this.FileName = fileName;
this.NewFilNname = newFileName;
this.ChangeType = myChangeType;
}
}
public class MyFileSystemEventArgs : EventArgs
...{
public string FileName;
public MyChangeType ChangeType;
public MyFileSystemEventArgs(string fileName, MyChangeType myChangeType)
...{
this.FileName = fileName;
this.ChangeType = myChangeType;
}
}
[Flags]
public enum MyChangeType
...{
Create = 1,
Modify = 2,
Delete = 4,
ReName = 8
}
#endregion
...{
定义方法#region 定义方法
public void CreateFile(string fileName)
...{
MyFileSystemEventArgs e = new MyFileSystemEventArgs(fileName, MyChangeType.Create);
FileCreated.Invoke(this, e);
Console.WriteLine("{0} is create at {1}", fileName, DateTime.Now);
}
public void ModifyFile(string fileName)
...{
MyFileSystemEventArgs e = new MyFileSystemEventArgs(fileName, MyChangeType.Modify);
FileModifyed.Invoke(this, e);
Console.WriteLine("{0} is Modify at {1}", fileName, DateTime.Now);
}
public void DeleteFile(string fileName)
...{
MyFileSystemEventArgs e = new MyFileSystemEventArgs(fileName, MyChangeType.Delete);
FileDeleted.Invoke(this, e);
Console.WriteLine("{0} is Delete at {1}", fileName, DateTime.Now);
}
public void RenameFile(string fileName, string newFilename)
...{
MyReNameEventArgs e = new MyReNameEventArgs(fileName, newFilename, MyChangeType.Delete);
FileRenamed.Invoke(this, e);
Console.WriteLine("{0} is rename to {1} at {2}", fileName, newFilename, DateTime.Now);
}
#endregion
定义事件#region 定义事件
public event MyFileSystemEventHandler FileCreated;
public event MyFileSystemEventHandler FileModifyed;
public event MyFileSystemEventHandler FileDeleted;
public event MyRenameEventHandler FileRenamed;
#endregion
}
public delegate void MyFileSystemEventHandler(object sender, MyFileSystemEventArgs e);
public delegate void MyRenameEventHandler(object sender, MyReNameEventArgs e);
构造事件的参数#region 构造事件的参数
public class MyReNameEventArgs : EventArgs
...{
public string FileName;
public string NewFilNname;
public MyChangeType ChangeType;
public MyReNameEventArgs(string fileName, string newFileName, MyChangeType myChangeType)
...{
this.FileName = fileName;
this.NewFilNname = newFileName;
this.ChangeType = myChangeType;
}
}
public class MyFileSystemEventArgs : EventArgs
...{
public string FileName;
public MyChangeType ChangeType;
public MyFileSystemEventArgs(string fileName, MyChangeType myChangeType)
...{
this.FileName = fileName;
this.ChangeType = myChangeType;
}
}
[Flags]
public enum MyChangeType
...{
Create = 1,
Modify = 2,
Delete = 4,
ReName = 8
}
#endregion
二 类的使用
class Program
...{
static void Main(string[] args)
...{
MyFileSystemWatch mfsw = new MyFileSystemWatch();
mfsw.FileCreated+=CreateFile;
mfsw.FileModifyed += ModifyFile;
mfsw.FileDeleted += DeleteFile;
mfsw.FileRenamed += RenameFile;
while (true)
...{
string read = Console.ReadLine();
if (read == null || read == "")
break;
string[] cmd=read.Split(new char[]...{});
switch (cmd[0])
...{
case "Create":
mfsw.CreateFile(cmd[1]);
break;
case "Modify":
mfsw.ModifyFile(cmd[1]);
break;
case "Delete":
mfsw.DeleteFile(cmd[1]);
break;
case "Rename":
mfsw.RenameFile(cmd[1],cmd[2]);
break;
default:
Console.WriteLine("输入无效");
break;
}
}
}
public static void CreateFile(object sender, MyFileSystemEventArgs e)
...{
Console.WriteLine("create");
}
public static void ModifyFile(object sender, MyFileSystemEventArgs e)
...{
Console.WriteLine("Modify");
}
public static void DeleteFile(object sender, MyFileSystemEventArgs e)
...{
Console.WriteLine("Delete");
}
public static void RenameFile(object sender, MyReNameEventArgs e)
...{
Console.WriteLine("Rename");
}
}
...{
static void Main(string[] args)
...{
MyFileSystemWatch mfsw = new MyFileSystemWatch();
mfsw.FileCreated+=CreateFile;
mfsw.FileModifyed += ModifyFile;
mfsw.FileDeleted += DeleteFile;
mfsw.FileRenamed += RenameFile;
while (true)
...{
string read = Console.ReadLine();
if (read == null || read == "")
break;
string[] cmd=read.Split(new char[]...{});
switch (cmd[0])
...{
case "Create":
mfsw.CreateFile(cmd[1]);
break;
case "Modify":
mfsw.ModifyFile(cmd[1]);
break;
case "Delete":
mfsw.DeleteFile(cmd[1]);
break;
case "Rename":
mfsw.RenameFile(cmd[1],cmd[2]);
break;
default:
Console.WriteLine("输入无效");
break;
}
}
}
public static void CreateFile(object sender, MyFileSystemEventArgs e)
...{
Console.WriteLine("create");
}
public static void ModifyFile(object sender, MyFileSystemEventArgs e)
...{
Console.WriteLine("Modify");
}
public static void DeleteFile(object sender, MyFileSystemEventArgs e)
...{
Console.WriteLine("Delete");
}
public static void RenameFile(object sender, MyReNameEventArgs e)
...{
Console.WriteLine("Rename");
}
}
- Delegate的使用实例
- c# delegate 的使用实例
- ASP.NET中"委托"(delegate)的使用简单实例
- delegate--- 委托简单的实例
- delegate 委托的使用
- delegate 的使用
- delegate的初使用
- UITableView delegate的使用
- delegate的使用
- Delegate的使用
- 对delegate的使用
- iOS Delegate 的使用
- Delegate的使用方式
- 使用delegate的步骤
- Delegate的使用场合
- 使用delegate的步骤
- iOS delegate 的使用
- Delegate的使用
- Atlas学习资料
- ASP对Excel的基本操作之查询数据
- Delegate的用法
- 范伟身患癌症 崔永元亲赴鞍山探望捐赠巨款
- [经]靠房地产盘活当地经济
- Delegate的使用实例
- webparts asp.net2.0
- .NET IO
- 初学Ajax
- 正在写一个vs.net的杂烩插件
- .NET 序列化
- 李开复谈工作:不要成为“紧急”的奴隶
- 佛语
- TcpClient VS TcpListener