c#委托理解复习

原创 2016年08月28日 20:18:11
c#中委托非常类似于c++中的函数指针,就是定义一个函数后把这个函数的执行交给其他'人'去调用
using System;
class Test
{
    delegate double sum(double a, double b);  //声明一个委托
    double add(double a, double b)  //定义两个函数
    {
        return a + b;
    }
    double dev(double a, double b)
    {
        return a - b;
    }
    public static void Main(string[] args)
    {
        Test test = new Test();
        sum s;  //定义一个委托
        s = test.add;  //将函数交给s
        Console.WriteLine(s(1.0, 2.0));  //调用
        s = test.dev;
        Console.WriteLine(s(1.0, 2.0));
        
    }
}


但是同c++所不同的是委托可以使用+=,-=来批量执行一些函数如下例子
using System;
class A
{
    public int stopA()
    {
        Console.WriteLine("sotpa");
        return 10;
        
    }
}
class B
{
    public int stopB()
    {
        Console.WriteLine("stopb");
        return 10;
    }
}
class C
{
    public int stopC()
    {
        Console.WriteLine("stopc");
        return 1000;
    }
}


class Contorller
{
   public A a;
   public  B b;
   public  C c;
   delegate int show();
   private show stop;


   public void Init()
   {
       stop += a.stopA;  //添加指向
       stop += b.stopB;
       //stop += c.stopC;
       stop += (() => { c.stopC(); return 5000; }); //运用lambda表达式产生一个匿名的方法
       stop -= a.stopA;  //去除指向
   }
   public void controlstop()
   {
       Init();
       Console.WriteLine(stop());
   }
}


class Test
{
    public static void Main()
    {
        A a = new A();
        B b = new B();
        C c = new C();
        Contorller con = new Contorller();
        con.a = a;
        con.b = b;
        con.c = c;
        con.controlstop();
    }
}

C# 中委托事件的理解实例

  • 2014年12月10日 22:37
  • 40KB
  • 下载

c#委托的理解和基础学习

 C#委托的理解和基础学习 Delegate,委托,是c#中非常重要的一个概念,使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时...
  • imcjysy
  • imcjysy
  • 2015年04月16日 18:35
  • 663

对于c#委托与事件的理解

  • 2011年04月27日 22:19
  • 16KB
  • 下载

深入理解C#---2.事件?委托?傻傻分不清楚

一个简单的事件的例子:“单击一个按钮后保存一个文件” 在这个例子中事件是单击按钮,事件处理操作是保存文件。在C#中创建事件很简单public event EventHandler Click; //...

C#委托和事件de理解

  • 2010年04月15日 20:41
  • 258KB
  • 下载

C#委托,事件理解入门小实例

  • 2012年11月29日 11:53
  • 40KB
  • 下载

从callback的角度来理解.NET/C# 中的 委托 (delegate)与 事件 (event)

delegate是个比较生僻的单词(其实是我英语差~)。那先看看简要的来自金山词霸的解释: delegate 名词 n. * 1.代表, 代表团成员 He is o...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#委托理解复习
举报原因:
原因补充:

(最多只允许输入30个字)