教程集 www.jiaochengji.com
教程集 >  脚本编程  >  Asp.net  >  正文 C#委托介绍与简单示例

C#委托介绍与简单示例

发布时间:2016-11-30   编辑:jiaochengji.com
教程集为您提供C#委托介绍与简单示例等资源,欢迎您收藏本站,我们将为您提供最新的C#委托介绍与简单示例资源
下面我来为大家简单的介绍一个关于C#委托介绍与简单示例,希望例子能帮助到各位同学哦。

C#委托介绍

托和事件在.NET Framework[1] 中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易

C#演示委托的简单用法

例子,一个演示委托的代码,最后给出结果。

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5863')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5863>

using System;
namespace Example.Dele
{
 class Operations
 {
  public static double MulTwo(double value)
  {
   return value * 2;
  }
  public static double Square(double value)
  {
   return value * value;
  }
 }
 delegate double DoubleOp(double x);
 class Dele
 {
  static void Main()
  {
   DoubleOp[] op =
    {
     new DoubleOp(Operations.MulTwo),
     new DoubleOp(Operations.Square)
    };
   for( int i = 0; i < op.Length; i )
   {
    Console.WriteLine("使用第{0}个操作", i);
    Display(op[i], 1.5);
    Display(op[i], 3.14);
    Display(op[i], 10);
    Console.WriteLine();
   }
  }
  static void Display(DoubleOp action, double value)
  {
   double result = action(value);
   Console.WriteLine("{0}的运算结果是{1}", value, result);
  }
 }
}

C#委托的好处

某人有三子,让他们各自带一样东西出门,并带回一头猎物。
可以理解为一种父亲对儿子的委托:
猎物 办法(工具 某工具)
三个人执行委托的方法各不相同
兔子 打猎(工具 弓)
野鸡 买(工具 钱)
狼 诱捕(工具 陷阱)
委托是一个类型,用来指称所有形式相同的方法(返回值类型相同而且参数也相同)。
public delegate double Handler(double[] ds);
public double Sum(double[] ds) {//在方法中执行操作。}
public double Average(double[] ds) {//在方法中执行操作。}
委托的实例化
用new关键字(将方法名作为参数)生成一个委托对象,建立委托与方法的关联。
例:Handler handler = new Handler(Sum);使用委托可以像使用变量一样使用委托的实例。使用委托时,需要给委托按要求传递参数。
使用委托,则委托所关联的方法被调用。
例:double[] weights={1.0,2.0,3.0,4.0};
double result=handler(weights);
一个委托可以通过 运算委托关联多个方法,叫多路广播委托(对应于单路广播委托)。
如果此时使用委托,则所有的关联方法都被调用。
例:Handler handler = new Handler(Sum);
handler = new Handler(Average);
这个委托(第三方)就会去调用方法去帮你实现
委托的好处:
1.相当于用方法作为另一方法参数(类似于C的函数指针)
2.在两个不能直接调用的方法中作为桥梁,如:在多线程中的跨线程的方法调用就得用委托

您可能感兴趣的文章:
C#委托介绍与简单示例
c#委托与多播委托的实例代码
c# 委托浅析
ASP.NET2.0泛型和匿名方法介绍
c# 委托与事件的小例子
C# 事件处理学习心得
C#入门学习笔记之C#匿名方法
c# 委托反射 DataTable转换为实体集的方法
C#中timer类定时器控件的应用实例
C# 多线程复制文件并显示进度条的代码

[关闭]
~ ~