C#泛型委托,匿名方法,匿名类

    class Test
    {
        delegate K proxy<T, K>(T t, K k); //泛型委托,注意返回值的写法,返回值的类型K先于其声明proxy<T,K>中的K,这是C#底层的事
        public static void Main()
        {
            proxy<int, string> pxy = varCat;
            proxy<int, int> padd = addTest;
            string s = pxy(10, "xyz");
            int sadd = padd(13, 12);

            var obj = new { ID = 10, age = 30, name = "tom" }; //匿名类,变量都是只读的
            proxy<int, int> paddEnonymous = delegate (int x, int y) //匿名函数
            {
                return x + y;
            };

            proxy<int, int> paddLambda = (int x, int y) =>//lambda表达式,相当于一种匿名函数
            {
                return x + y;
            };

        }

        public static string varCat(int i, string s)
        {
            return i + ": " + s;
        }

        public static int addTest(int x, int y)
        {
            return x + y;
        }
时间: 2024-10-11 07:36:36

C#泛型委托,匿名方法,匿名类的相关文章

温故而知新:Delegate,Action,Func,匿名方法,匿名委托,事件

一.委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如 public void HelloWorld() { Console.WriteLine("Hello World!"); } public void HelloWorld(string name) { Console.WriteLine("Hello ,{0}!", name); } 但是有些时候,我们希望把一

委托,匿名方法,Lambda,泛型委托,表达式树

一.委托:完成一个委托应分三个步骤://step01:首先用delegate定义一个委托;public delegate int CalculatorAdd(int x, int y);//step02:声明一个方法来对应委托.public int Add(int x, int y){ return x + y;}protected void FrmTest_Load(object sender, EventArgs e){ //step03:用这个方法来实例化这个委托. CalculatorA

C#学习笔记三: C#2.0泛型 可控类型 匿名方法和迭代器

前言 C#1.0的委托特性使方法作为其他方法的参数来传递,而C#2.0 中提出的泛型特性则使类型可以被参数化,从而不必再为不同的类型提供特殊版本的实现方法.另外C#2.0还提出了可空类型,匿名方法和迭代器3个优美的特性. 1,泛型1.1 泛型是什么泛型的英文表述是"generic", 这个单词意为通用的.从字面意思可知,泛型代表的就是"通用类型",它可以代替任意的数据类型,使类型参数化,从而达到之实现一个方法就可以操作多种数据类型的目的.泛型是将方法实现行为与方法操

C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法

使用C#实现加减乘除算法经常被用作新手练习.本篇来分别体验通过委托.接口.匿名方法.泛型委托来实现. 使用委托实现 加减乘除拥有相同的参数个数.类型和返回类型,首先想到了使用委托实现. //创建一个委托 public delegate decimal MathOperation(decimal left, decimal right); //创建方法参数和返回结果符合委托的定义 public static decimal Add(decimal left, decimal right) { re

委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件

1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委托代表了具有相同参数列表和返回值的所有函数. [csharp] view plaincopy class Program { delegate int CalculateDelegate(int a, int b); int add(int a, int b) { return a + b; } s

委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式

引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录下来,以备复习使用. 委托: 日常工作中,常常见到委托用在具体的项目中.而且委托使用起来相对来说也是非常简单的,下面列举一个委托实例用以说明如何使用委托,代码如下: class Program { public delegate int CalculateDelegate(int x, int y)

编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]

前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是对方法的引用.事件本身也是委托,它是委托组,C#中提供了关键字event来对事件进行特别区分.一旦我们开始编写稍微复杂的C#代码,就肯定离不开泛型.委托和事件.本章将针对这三个方面进行说明. 本文已更新至http://w

五分钟重温C#委托,匿名方法,Lambda,泛型委托,表达式树

五分钟重温C#委托,匿名方法,Lambda,泛型委托,表达式树 https://masuit.com/81 曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五分钟内看完这篇博客 第一分钟:委托 有些教材,博客说到委托都会提到事件,虽然事件是委托的一个实例,但是为了理解起来更简单,今天只谈委托不谈事件.先上一段代码: 下边的代码,完成了一个委托应用的演示.一个委托分三个步骤: 1 2 3 4 5 6 7 8 9 10 11 12

c# 匿名方法(函数) 匿名委托 内置泛型委托 lamada

匿名方法:通过匿名委托 .lamada表达式定义的函数具体操作并复制给委托类型: 匿名委托:委托的一种简单化声明方式通过delegate关键字声明: 内置泛型委托:系统已经内置的委托类型主要是不带返回值的Action<T1,,,,Tn>和带返回值的Func<T1,,,Tn,Tresult> 实例代码 class demoFunc { /// <summary> /// 定义函数单条语句直接用lamada表达式 /// </summary> /// <p