Delegate的使用实例

来源:互联网 发布:文件资源管理器php 编辑:程序博客网 时间:2024/05/06 08:22

一  类的定义

 

class MyFileSystemWatch
    
{
        
定义方法
        
定义事件
    }

    
public delegate void MyFileSystemEventHandler(object sender, MyFileSystemEventArgs e);
    
public delegate void MyRenameEventHandler(object sender, MyReNameEventArgs e);

    
构造事件的参数

二  类的使用

 

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");
        }

    }