关于委托的基础问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
C#   高级编程第六章   讲委托.第一个小例子我就不太明白 
 例子是这样 
             class   Program 
             { 
                         private   delegate   string   GetAString(); 
                         static   void   Main(string[]   args) 
                         { 
                                     int   X   =   40; 
                                     GetAString   FirstStringMethod   =   new   GetAString(X.ToString); 
                                     Console.WriteLine( "String   is "   +   FirstStringMethod()); 
                         } 
             }   
 ============================================= 
 这一句 
 GetAString   FirstStringMethod   =   new   GetAString(X.ToString); 
 这里的GetAString怎么会有个参数.定义的时候也没有加参数.   不是很明白.   
 菜鸟的问题.指教一下,谢谢 
------解决方案--------------------private delegate string GetAString(); 
 这句并不是说明委托是什么样子,而是说委托所指向的方法是什么样子 
 而X.ToString是一个没有参数、返回string的方法 
 所以用GetAString FirstStringMethod = new GetAString(X.ToString);将委托和方法关联起来
------解决方案--------------------再给一个例子 
 using System;   
 namespace 委托 
 { 
     delegate int NumOpe(int a,int b); //委托声明 
     class Class1 
     { 
         static void Main(string[] args) 
         { 
             Class1 c1 = new Class1(); 
             NumOpe p1 = new NumOpe(c1.Add); //委托实例化 
             Console.WriteLine(p1(1,2)); //委托调用 
             Console.ReadLine(); 
         }   
         private int Add(int num1,int num2) 
         { 
             return(num1+num2); 
         } 
     } 
 }
------解决方案--------------------X.ToString不是参数! 
 String FirstStringMethod = new GetAString(X.ToString);的括号里表示要执行的方法! 
 而这个方法就是X.ToString 
 委托定义里的参数是方便那个括号里要执行的方法的参数!也即ToString()的参数,而非GetAString()的参数! 
 ToString没有参数,所以没什么问题!