委托为什么可以和字符串一样实例化
menotplayboy | 浏览 306 次 2012-04-10 17:52
2012-04-10 23:37
提问者采纳
委托可以实例化啊。
首先你的确可以把委托看成一个类,因此委托可以实例化。
一般来说委托的整个流程是
1、声明对应函数的委托
2、将委托实例化
3、然后使用这个委托实例
但是在现在的.net版本中,微软帮我们省略了委托实例
这个步骤,让我们可以直接传递函数名称。
举个例子:
被委托的函数是
static void a()
{
……
}
委托为
delegate void b();
调用委托的函数为
public void c(delegate d)
{
d();
}
正常来说我们应该这样做
b del_a=new b(a);///实例化委托
c(del_a);///使用委托实例
但是微软允许我们这样做
c(a);
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace 委托 7 { 8 class Program 9 { 10 public delegate void b();//委托 11 static void Main(string[] args) 12 { 13 b _del = new b(a);//实例化委托 14 c(_del);//使用委托实例 15 c(a); 16 Console.ReadKey(); 17 } 18 //调用委托函数 19 public static void c(b d) 20 { 21 d(); 22 } 23 //被委托d的函数 24 public static void a() 25 { 26 Console.WriteLine("123"); 27 } 28 } 29 }