C# 委托的学习

delegate int GetCalculatedValueDelegate(int x, int y);    //定义是个委托实际上就是抽象一类  参数列表形式和返回值相同的函数AddCalculator,SubCalculator这两个该函数的参数形式和返回值的类型就是。
      
    static int AddCalculator(int x, int y)   
    {   
        return x + y;   
    }   
      
    static int SubCalculator(int x, int y)   
    {   
        return x - y;   
    }   
      
    static int Calculator(GetCalculatedValueDelegate del, int x, int y)   //定义一个函数 传入三个参数  第一个参数的类型是一个委托  也就是说委托是一个类型。
    {   
        return del(x, y);  
    }   
      
    static void Main(string[] args)   
    {   
        Console.WriteLine(Calculator(AddCalculator, 10, 20));   
    }

在上面的例子中,Calculator函数的第一个参数就是一个委托。事实上,Calculator对x和y将会做什么处理,它本身并不知道,如何处理x和y由GetCalculatedValueDelegate来决定。那么在Main方法里,我们将AddCalculator方法作为参数传递给Calculator,表示让Calculator用AddCalculator的逻辑去处理x和y。这也很形象:Calculator说:“我不知道要怎么处理x和y,让del去处理好了!”于是就把x和y扔给了del。

lamada表达式的应用

n=>n%2==0;

等价于

delegate(int n){ return n%2==0;}

时间: 2024-11-05 13:31:51

C# 委托的学习的相关文章

委托的学习和使用(三种方式)

委托: 日常工作中,常常见到委托用在具体的项目中.而且委托使用起来相对来说也是非常简单的,下面列举一个委托实例用以说明如何使用委托,代码如下: class Program { public delegate int CalculateDelegate(int x, int y); static void Main(string[] args) { CalculateDelegate calculateDelegate = new CalculateDelegate(Add); int resul

委托由浅入深学习

一,简单例子 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SimpleDelegate { class Program { private delegate String getString(); static void Main(String[] args) { int delegat = 40; getString Show = new getS

委托再学习

本文转载自深山老林 1.什么是委托? 委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联. 2.委托有什么特点? 委托类似于 C++ 函数指针,但它们是类型安全的. 委托允许将方法作为参数进行传递. 委托可用于定义回调方法. 委托可以链接在一起:例如,可以对一个事件调用多个方法. 方法不必与委托签名完全匹配. C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法. C# 3.0 引入了 Lambda 表达式,利用它们可以更简练地编写内联代码块.

.Net 委托 delegate 学习

一.什么是委托: 委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递.委托是一种特殊类型的对象,其特殊之处在于委托中包含的只是一个活多个方法的地址,而不是数据. 二.使用委托: 关键字:delegate 1.声明: public delegate void DoNothing();//定义一个无返回值,无参数的委托 public delegate int GetNum(int i); //定义有一个返回值int ,参数int 的委托 2.创建方法: public static vo

程序员委托事件学习随笔

委托的声明 public delegate void MyDelegate(string str); 委托是一种特殊的类型(class),用途是来实现对一种方法的封装.在某种事件发生时,自动调用该方法.好处显然易见,它使用户可以自定义自己的方法实现,通过封装,CLR会在相应事件激发时调用你定义的方法,实现你的功能. 注 1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种类型.是一种特殊的类型,看成是一种新的对象类型比较好理解.用于对与该委托有相 同签名的

C#事件(Event)学习日记

event 关键字的来由,为了简化自定义方法的构建来为委托调用列表增加和删除方法. 在编译器处理 event 关键字的时候,它会自动提供注册和注销方法以及任何必要的委托类型成员变量. 这些委托成员变量总是声明为私有的,因此不能直接从触发事件对象访问它们. 温馨提示:如果您对于委托不是很了解,您可以先看 C#委托(Delegate) ,这对您理解本章会有所帮助. 定义一个事件的步骤: 需要定义一个委托,它包含事件触发时将要调用方法 通过 event 关键字用相关委托声明这个事件 话不多说,我们来看

30天C#基础巩固------了解委托,string练习

---->了解委托.     生活中的例子:我要打官司,我需要找一个律师,法庭上面律师为当事人辩护,它真正执行的是当事人的陈词,这时律师 就相当于一个委托对象.当事人则委托律师为自己辩解.     C#中的委托是一个类,(类类型),因为只有类才有对象的概念.C#中的委托可以理解为函数的一个包装,它使得C#中的函数可以作为参数来传递. 委托的定义: //定义委托 public delegate void MyDelegate(int para1,string para2); 委托的一些步奏:   

C#对委托的初步理解理解

作为新手对委托的学习: 1.定义委托:委托实际上是一个类,在定义委托前就知道了方法的返回类型和方法的参数类型(可以把委托理解为只知道方法的返回类型和方法的参数类型,不知道方法体) public  delegate string TestDelegate(string test); 2.实例: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Thre

C#委托之愚见

C#委托起源 最近参加实习和奔走于各大招聘会,被问及很多技术方面的问题,C#问的较多的就是委托和linq.linq之前已经写过一篇文章,可以参见 http://blog.csdn.net/yzysj123/article/details/38778371. 这里讲讲C#为什么用委托和什么是委托.学习过C++的都知道,C++的指针非常的灵活好用,但又给编程人员带来了很多头痛,如野指针问题等.而C#就遗弃了指针,但相应的功能通过了其他方式来实习,如C++中指针变量.引用,C#里面可以通过ref,ou