class Program
{ public delegate void MyDelegate(string str); static void Main(string[] args)
{
//
MyDelegate d1 = Print; d1("简写的触发");
//
d1 = new MyDelegate(Print);
//
d1.Invoke("使用invoke触发"); //多播委托 如果在此之前没有 赋值操作将会报错
d1 += Print; d1("触发两次"); Console.WriteLine("让我们来看一看报错的信息"); /*
MyDelegate d2 = new MyDelegate();
d2 += Print; //在compile 阶段就会提示你要赋值
**/ //使用action 来声明委托 Action<string> action = Print;
action("action委托"); //Func<Treturn,Tin..> 适用于具有返回值的委托 //之前是表明委托如何定义 的, 下面才是委托的真正的用法 ,即 作为一个函数的参数
//比如我们在下面定义了一个函数 ,这个函数用于输出
//我们给他传入不同的action来输出 ,那就可以达到不同的输出效果
ActionPrint(Print,"");
ActionPrint(str=>Console.Write("使用lambda表达式:"+str),""); //匿名方法
string mid = "中间值";
Func<string, string> anonDel = delegate(string str)
{
str += mid;
str += " 添加到这个字符串中";
return str;
}; Console.WriteLine(anonDel("")); //lambda 表达式 只要有委托参数类型的地方 ,就可以使用lambda表达式 比如上面的例子 Func<string, string> anonLambda = str =>
{
str += mid;
str += " 添加到这个字符串中";
return str;
}; //甚至如果lambda表达式中只需要一个方法的时候 我们还可以使用最简写的方法齐群 囧 其实就是委托....
Action<string> anonAction = Print;
Console.Read(); } public static void Print(string str)
{
Console.WriteLine("输出{0}",str);
} public static void ActionPrint(Action<string> action,string str)
{
action(str);
}
}

对委托 以及 action func 匿名函数 以及 lambda表达式的简单记录的更多相关文章

  1. [C#学习教程-委托]001.大道至简之委托(代理),匿名函数,Lambda表达式

    引言:此文翻译自CodeProject上的同名文章<C# Delegates,Anonymous Methods, and Lambda Expressions>,在此一起Mark一下,此 ...

  2. 3 委托、匿名函数、lambda表达式

    委托.匿名函数.lambda表达式 在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法.C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方 ...

  3. 浅析匿名函数、lambda表达式、闭包(closure)区别与作用

    浅析匿名函数.lambda表达式.闭包(closure)区别与作用 所有的主流编程语言都对函数式编程有支持,比如c++11.python和java中有lambda表达式.lua和JavaScript中 ...

  4. 匿名函数:Lambda表达式和匿名方法

    匿名函数一个"内联"语句或表达式,可在需要委托类型的任何地方使用.可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数. 共有两种匿名函数: Lamb ...

  5. C#语法之匿名函数和Lambda表达式

    上一篇博客主要是对委托和事件做了一小结,这篇是在上一篇博客的基础上对匿名函数和Lambda表达式小结.还是接着上一篇说起,在上一篇中也说了委托是一种数据结构,主要是解决让函数作为参数的问题.在使用委托 ...

  6. 测开之路八十二:匿名函数:lambda表达式

    # 匿名函数:lambda表达式# lambda 参数: 逻辑f = lambda name: print(name)f('tom') f2 = lambda x, y: x + yprint(f2( ...

  7. 委托,匿名函数和lambda表达式

    很早之前就接触到了委托,但是一直对他用的不是太多,主要是本人是菜鸟,能写的比较高级的代码确实不多,但是最近在看MSDN微软的类库的时候,发现了微软的类库好多都用到了委托,于是决定好好的研究研究,加深一 ...

  8. 12_Python的(匿名函数)Lambda表达式_Python编程之路

    Python作为一门高级语言,与很多编程语言一样都具有匿名函数这一特征 匿名函数,也就Lambda表达式,通俗来讲就是不用命名的方法,直接定义,直接用即可 创建匿名函数需要用到Lambda关键字,下面 ...

  9. C++的匿名函数(lambda表达式)

    总述  C++11提供了对匿名函数的支持,称为Lambda函数(也叫Lambda表达式). 它是定义和使用匿名函数对象的一种简便的方式.匿名函数是我们需要用到的一个函数,但是又不想去费力命名一个函数的 ...

随机推荐

  1. IntelliJ IDEA 2017.3尚硅谷-----创建动态的 Java Web

  2. python之路之面向对象3

    一.知识点拾遗 1.多继承的易错点 二.设计模式 1.设计模式介绍 Gof设计模式 大话设计模式 2.单例模式 当所有实例中封装的数据相同时,使用单例模式 静态方法+静态字段 单例就是只有一个实例 a ...

  3. Spark 并行计算模型:RDD

    Spark 允许用户为driver(或主节点)编写运行在计算集群上,并行处理数据的程序.在Spark中,它使用RDDs代表大型的数据集,RDDs是一组不可变的分布式的对象的集合,存储在executor ...

  4. 无聊学习一下MVP这个概念

    记录一下学习MVP,好处是便于替换前台页面(winfrom替换成asp.net),不改变页面逻辑层及其以后的层 M:业务逻辑 V:页面 P:页面逻辑 ,充当 页面和业务逻辑的中间层 规则:V和M不能直 ...

  5. 用Emmet写前端代码

    Emmet插件:可以用 emmet代码+Tap  写出更多并快捷的html代码,主流编辑器均可安装,安装方法也均不相同! <!-- html:5或者!可以生成html5文档 --> < ...

  6. 【PAT甲级】1111 Online Map (30分)(dijkstra+路径记录)

    题意: 输入两个正整数N和M(N<=500,M<=N^2),分别代表点数和边数.接着输入M行每行包括一条边的两个结点(0~N-1),这条路的长度和通过这条路所需要的时间.接着输入两个整数表 ...

  7. centos 添加rpmfusion源,yum 安装 ffmpeg

    rpmfusion提供了,在Fedora和 centos 源之外的其他yum 源 例如ffmpeg 在 centos 基础源和epel-release 里面都没有, 但是可以在rpmfusion中找到 ...

  8. PHP基础学习笔记1

    一.基本语法 1.1 形式 PHP 脚本以 <?php 开始,以 ?> 结束: <?php //php代码 ?> 1.2 注释 单行注释 //这是单行注释 多行注释 /* 这是 ...

  9. 传奇版本中利用NPC迅速给人物加血脚本制作

    在传奇中,快速给玩家回血的脚本被广泛运用,能刺激玩家消费,怎么说呢,玩家跟人PK激情中,特别是群打,快速补血的重要性不说你也懂的. [@main]神医:“最近玛法大陆动荡不平,每天进进出出这里的伤者日 ...

  10. 修改eclipse工程jdk版本

    在eclipse中项目jdk版本不匹配的时候需要修改项目工程的jdk版本,但是网上的一些版本修改不是很完全,经过一些摸索之后,参考总结了我在项目中的具体配置实践 问题: 修改eclipse中的项目jd ...