文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C# 之委托学习(1)

C# 之委托学习(1)

时间:2011-05-05  来源:My fool

今天学习C#的委托用法,跟大家分享一下:

委托是一种数据结构,它引用静态方法或引用类实例及该类的实例方法。我们看看下面的例子:

int i = 100;    //定义一个整形数。

public delegate string GetString();   //定义一个委托GetString,它返回string类型。

GetString firstMethod = new GetString(i.ToString);    //实例化类型为GetString的一个委托。

不多说了,下面来看一个例子,很简单的一个例子,大家都可以看懂的:

View Code
using System;
using System.Collections.Generic;
using System.Text;

namespace Wrox.ProCSharp.Delegates
{
class MathOperations
{
public static double MultiplyByTwo(double value)
{
return value * 2;
}

public static double Square(double value)
{
return value * value;
}
}


delegate double DoubleOp(double x);

class MainEntryPoint
{
static void Main()
{
DoubleOp[] operations
=
{
MathOperations.MultiplyByTwo,
MathOperations.Square
//new DoubleOp(MathOperations.MultiplyByTwo),
//new DoubleOp(MathOperations.Square)
};

for (int i = 0; i < operations.Length; i++)
{
Console.WriteLine(
"Using operations[{0}]:", i);
ProcessAndDisplayNumber(operations[i],
2.0);
ProcessAndDisplayNumber(operations[i],
7.94);
ProcessAndDisplayNumber(operations[i],
1.414);
Console.WriteLine();
}
Console.ReadLine();
}

static void ProcessAndDisplayNumber(DoubleOp action, double value)
{
double result = action(value);
Console.WriteLine(
"Value is {0}, result of operation is {1}", value, result);
}
}
}

理解委托的一种好方式是把委托当作给方法签名和返回类型指定名称。

ProcessAndDisplayNumber(operations[i], 2.0);   // 表示把委托传递给ProcessAndDisplayNumber()方法。

今天就写到这里,有很多不足的地方请多多请教。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载