Delegate是什么?
Delegate中文翻译为“委托”。Msdn中对Delegate的解释如下:
C#中的委托类似于C或C++中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托是面向对象、类型安全的,并且是安全的。
先看下例子:
class Program
{
public delegate int Max(int v1,int v2);
static void Main(string[] args)
{
Max m_max = new Max(Program.printf);
m_max += new Max(Program.testdel);
m_max.Invoke(4,8);
do
{
} while (true);
}
static public int printf(int a, int b)
{
Console.WriteLine("printf...............{0}",a>b?a:b);
return a > b ? a : b;
}
static public int testdel(int b,int a)
{
Console.WriteLine("test...........");
return 1;
}
}
Delegate在搭载多个方法时,可以通过+=增加搭载的函数,也可以通过-=来去掉Delegate中的某个函数。
本文介绍了C#中的Delegate概念,将其比作C/C++中的函数指针,并解释了它如何允许在运行时确定调用哪个方法,同时保持面向对象和类型安全性。通过一个具体的示例程序展示了Delegate的基本使用方法。
1257

被折叠的 条评论
为什么被折叠?



