初步学习“C#委托”(1)

委托很类似于C中的函数指针 包含对方法的引用 帮助决定在运行时调用哪个方法
步骤:1. 定义委托 2. 实例化委托 3. 使用委托
1.定义委托
public delegate void DelegateName();

2.实例化委托

  class   TestDelegates   
  
{   
        
public   delegate   int   CallFun(int   a,   int   b);   
        
class   MathsOperations   
        
{   
              
public   int   MulFun(int   a,   int   b)   
              
{   
                    
return   a*b;   
              }
   
              
public   int   DivFun(int   a,   int   b)   
              
{   
                    
return   a/b;   
              }
   
        }
   
    
  
class   Test   
        
{   
              
static   void   Main()   
              
{   
                    CallFun   DelegateObj;   
                    MathsOperations   math   
=   new   MathsOperations();   
    
                    DelegateObj   
=   new   CallFun(math.MulFun);   
              }
   
        }
   
  }
    

实例化委托时,必须调用 委托的构造函数,并将与 委托相关联的方法及其对 象名作为参数传给它。

3.使用委托
class   TestDelegates   
  
{   
        
public   delegate   int   CallFun(int   a,   int   b);   
  }
   
        
class   MathsOperations   
        
{   
              
public   int   MulFun(int   a,   int   b)   
              
{   
  
return   a*b;   
              }
   
    
              
public   int   DivFun(int   a,   int   b)   
              
{   
  
return   a/b;   
              }
   
        }
   
    
  
class   Test   
  
{   
        
static   void   Main()   
        
{   
          CallFun   DelegateObj;   
          MathsOperations   math   
=   new   MathsOperations();   
    
          DelegateObj   
=   new   CallFun(math.MulFun);   
          
int   t=DelegateObj(5,   3);   
          System.Console.WriteLine(
"结果是:{0}",t);         
  }
   
  }
   
  }   

调用委托的方式与调用方法的方式相同,唯一的差别是没有 调用委托的实现(该实现不存在),而是调用与该委托相关 联的方法的实现代码。

posted @ 2008-07-17 14:39  阿无  阅读(133)  评论(0编辑  收藏  举报