1,匿名方法

匿名方法可以在声明委托变量时初始化表达式,语法如下

之前写过这么一段代码:

    delegate void MyDel(string value);
class Program
{
void Print1(string value)
{
Console.WriteLine("方法1:{0}", value);
}
void Print2(string value)
{
Console.WriteLine("方法2:{0}", value);
}
void Print3(string value)
{
Console.WriteLine("方法3:{0}", value);
}
/// <summary>
/// 执行委托方法
/// </summary>
/// <param name="d">委托类型参数</param>
/// <param name="value">委托内方法的参数</param>
void PrintFun(MyDel d, string value)
{
d(value);
}
static void Main(string[] args)
{
Program p = new Program();
MyDel del1, del2;//声明委托变量
del1 = p.Print1;
del2 = p.Print2;
p.PrintFun(del1, "已运行");
p.PrintFun(del2, "已运行");
Console.ReadKey();
}
}

现在可以改成这样:

    delegate void MyDel(string value);
class Program
{/// <summary>
/// 执行委托方法
/// </summary>
/// <param name="d">委托类型参数</param>
/// <param name="value">委托内方法的参数</param>
void PrintFun(MyDel d, string value)
{
d(value);
}
static void Main(string[] args)
{
Program p = new Program(); //匿名方法
Console.WriteLine("\n运行匿名方法");
MyDel d1 = delegate(string value) { Console.WriteLine("方法1:{0}", value); };
MyDel d2 = delegate(string value) { Console.WriteLine("方法2:{0}", value); };
p.PrintFun(d1, "以匿名方法运行");
p.PrintFun(d2, "以匿名方法运行"); Console.ReadKey();
}
}

2,Lambda表达式

匿名方法的简化

    delegate void MyDel(string value);
class Program
{
/// <summary>
/// 执行委托方法
/// </summary>
/// <param name="d">委托类型参数</param>
/// <param name="value">委托内方法的参数</param>
void PrintFun(MyDel d, string value)
{
d(value);
}
static void Main(string[] args)
{
Program p = new Program();//Lambda表达式
Console.WriteLine("\n运行Lambda表达式");
MyDel d3 = value => Console.WriteLine("方法3:{0}", value);
p.PrintFun(d3, "以Lambda表达式运行"); Console.ReadKey();
}
}

C#委托总结-匿名方法&Lambda表达式的更多相关文章

  1. 委托delegate 泛型委托action<> 返回值泛型委托Func<> 匿名方法 lambda表达式 的理解

    1.使用简单委托 namespace 简单委托 { class Program { //委托方法签名 delegate void MyBookDel(int a); //定义委托 static MyB ...

  2. C# delegate event func action 匿名方法 lambda表达式

    delegate event action func 匿名方法 lambda表达式 delegate类似c++的函数指针,但是是类型安全的,可以指向多个函数, public delegate void ...

  3. 18、(番外)匿名方法+lambda表达式

    概念了解: 1.什么是匿名委托(匿名方法的简单介绍.为什么要用匿名方法) 2.匿名方法的[拉姆达表达式]方法定义 3.匿名方法的调用(匿名方法的参数传递.使用过程中需要注意什么) 什么是匿名方法? 匿 ...

  4. 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件【转】

    1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委 ...

  5. C#多线程+委托+匿名方法+Lambda表达式

    线程 下面是百度写的: 定义英文:Thread每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.进程也可能是整个程序或者是部分程序的动态执行.线程是一组指令的集合,或者是程序的特殊段,它 ...

  6. 匿名函数 =匿名方法+ lambda 表达式

    匿名函数的定义和用途 匿名函数是一个"内联"语句或表达式,可在需要委托类型的任何地方使用. 可以使用匿名函数来初始化命名委托[无需取名字的委托],或传递命名委托(而不是命名委托类型 ...

  7. C# 从CIL代码了解委托,匿名方法,Lambda 表达式和闭包本质

    前言 C# 3.0 引入了 Lambda 表达式,程序员们很快就开始习惯并爱上这种简洁并极具表达力的函数式编程特性. 本着知其然,还要知其所以然的学习态度,笔者不禁想到了几个问题. (1)匿名函数(匿 ...

  8. 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五 ...

  9. 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托 ...

随机推荐

  1. Frog and Portal(思维好题)

    Frog and Portal https://hihocoder.com/problemset/problem/1873 时间限制:1000ms 单点时限:1000ms 内存限制:512MB 描述 ...

  2. js简单校验form表单

    /** * 数据简单校验 */ function checkData (formId) { var check = true; var emailReg = new RegExp("^[a- ...

  3. ECMAScript6新特性之继承

    class Animal{ constructor(name){ this.name = name; } get name(){ return this._name; } set name(val){ ...

  4. 【校招面试 之 C/C++】第31题 C++ 11新特性(二)之nullptr关键字

    1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起.对于C和C++程序员来说,一定不会对NULL感到陌生.但是C和C++中的NULL却不等价.NULL表示指针不指向任何对象 ...

  5. [leetcode]426. Convert Binary Search Tree to Sorted Doubly Linked List二叉搜索树转有序双向链表

    Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers ...

  6. Spring_AOP动态代理详解(转)

    在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的 ...

  7. php SESSON共享 (mysql方式)

    为什么要进行session共享? 因为一些大型网站,通常会有很多服务器,每个服务器运行不同的业务模块,并使用二级域名(或是完全不同的域名),而用户系统是统一的,通过登陆名.密码来登陆各模块.用户数据放 ...

  8. sql ltrim/rtrim 字段中为中文时出现?的问题

    字段存储为中文,类型为nvarchar,使用ltrim时结果集中出现的问号,我的解决办法是:将问号replace掉

  9. PAT 1010 一元多项式求导 (25)(STL-map+思路)

    1010 一元多项式求导 (25)(25 分)提问 设计函数求一元多项式的导数.(注:x^n^(n为整数)的一阶导数为n*x^n-1^.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均 ...

  10. SNP问题大集锦

    SNP问题大集锦 [2017-01-19]       最近小编对基因检测很感兴趣,也跟风去测了一下,这一测不要紧,吓得小编几天没睡着觉,这不,检测报告上称小编的减肥能力弱,虽然小编一家都是胖子,唯有 ...