可以不定义为void  举例: 
 
class  test 
{ 
   public static int Add(int x) 
  {  
     return  x++; 
  } 
} 
static void Main() 
{ 
   delegate int MyDel(int num); 
  MyDel del=Add; 
  Console.WriteLine("{0}",del(1));         //============>输出结果为2    
} 
上面的例子说明可以不为void  只是太多的方法,在执行过程中的返回值被忽略【但是其值是存在的】,只有最后一个会被接收到,要的话 我还可以给你写例子 
 |   
        
 
    
    
    
     
 
 |