很多同学学了c#,但是都在委托这里卡住了,今天ooxx研究院就给大家谈谈委托入门~深入的知识大家自己看书咯~ 这里只说的是入门~
什么是委托:

委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。简单地说委托类型就是面向对象函数指针。

如何使用委托 :
在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。

声明,如:

1 namespace Vczx.ProCSharp.Exc

2 {

3 delegate double MathsOp( double x );

4 //class defination here

5 }

这就声明了一个委托,意义:任何一个返回值为double,且只有一个形参为double的函数,都可以用这个委托来调用。

 

委托是事件的基础。

通过将委托与命名方法或匿名方法关联,可以实例化委托。 必须使用具有兼容返回类型和输入参数的方法或 lambda 表达式实例化委托。 有关方法签名中允许的差异程度的更多信息,为了与匿名方法一起使用,委托和与之关联的代码必须一起声明。 本节ooxx研究院讨论这两种实例化委托的方法。

示例

 

delegate double MathAction(double num);

class DelegateTest

{

// Regular method that matches signature:

static double Double(double input)

{

return input * 2;

}

static void Main()

{

// Instantiate delegate with named method:

MathAction ma = Double;

// Invoke delegate ma:

double multByTwo = ma(4.5);

Console.WriteLine(multByTwo);

// Instantiate delegate with anonymous method:

MathAction ma2 = delegate(double input)

{

return input * input;

};

double square = ma2(5);

Console.WriteLine(square);

// Instantiate delegate with lambda expression

MathAction ma3 = s => s * s * s;

double cube = ma3(4.375);

Console.WriteLine(cube);

}

}

评论被关闭。