c#代理究竟有什么用啊

来源:百度知道 编辑:UC知道 时间:2024/07/03 05:16:30
C#代理究竟是什么意思啊!其用处是什么啊!我刚刚学C#,请简要的解释一下,麻烦写个简单的例子,让我弄懂一下其用法

如果你有C++的编程背景,那这个问题就很简单了:C#中的delegate和C++中的函数指针基本是一回事,C#正是以delegate的形式实现了函数指针。不同的地方在于C#中delegate是类型安全的。
如果没有C或者C++的背景知识也没有一点关系。
要理解Delegate,首先,你要明白,它是一个类,他和Class是一个级别的概念,不同在于Class的定义包含字段和方法,而delegate只包含方法的细节。
定义Delegate:
public delegate bool CompareDelegate(int a, int b);

上面语句的含义是:定义了一个委托的实例时,这些实例都要包含一个方法名,并且这个方法必须有两个int型的参数,并且必须返回一个bool型的值。
好,现在就创建一个上面定义的委托的实例
public CompareDelegate myCompare = new CompareDelegate(CompareMethod);
里面的这个CompareMethod是一个方法:
定义如下:
public static bool CompareMethod(int x , int y)
{
bool result = x > y ? true : false;
return result;
}
怎么使用呢
int a = 10;
int b = 15;
bool isBigger = myDelegate(a, b);

下面是完整的代码:
using System;
using System.Collections.Generic;
using System.Text;
using Common;

namespace ConsoleApplication8<