匿名方法:通过匿名委托 、lamada表达式定义的函数具体操作并复制给委托类型;

匿名委托:委托的一种简单化声明方式通过delegate关键字声明;

内置泛型委托:系统已经内置的委托类型主要是不带返回值的Action<T1,,,,Tn>和带返回值的Func<T1,,,Tn,Tresult>

实例代码(运行环境netcoreapp3.1)

class demoFunc
{
/// <summary>
/// 定义函数单条语句直接用lamada表达式
/// </summary>
/// <param name="x"></param>
public void funcA( string x)=> Console.WriteLine("this is funcA!{0}",x);
/// <summary>
/// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量,并通过那lamada定义匿名函数
/// </summary>
public Action<string> funcB= x => Console.WriteLine("this is funcB!{0}", x);
/// <summary>
/// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量,
/// 并通过匿名委托定义匿名函数
/// </summary>
public Action<string> FuncB_1= delegate(string s)
{
Console.WriteLine("this is funcB_1!{0}", s);
};
/// <summary>
/// 定义委托类型
/// </summary>
/// <param name="s"></param>
public delegate void TFuccB_2(string s);
/// <summary>
/// 使用匿名函数声明委托
/// </summary>
public TFuccB_2 FuncB_2= delegate(string s) {
Console.WriteLine("this is funcB_2!{0}", s);
}; /// <summary>
/// 使用内置泛型委托func(返回值不可以为void,参数列表中最后一个时返回值),
/// 定义委托类型成员变量,并通过lamada定义单含带返回值的匿名函数
/// 单行表达式的返回值就是此匿名函数的返回值
/// </summary>
public Func<string, string> funcC=x=> string.Format("this is funcC!{0}", x); /// <summary>
/// 使用内置泛型委托func(返回值不可以为void),定义委托类型成员变量,
/// 并通过lamada定义多行代码的匿名函数
/// </summary>
public Func<string,string, string> funcD= (x1, x2) =>
{
Console.WriteLine("this is funcd!{0}{1}", x1, x2);
return string.Format("this is funcd!{0}{1}", x1, x2);
}; }

运行测试代码

static void Main(string[] args)
{
demoFunc demo=new demoFunc();
demo.funcA("a");
demo.funcB("b");
demo.FuncB_1("b");
demo.FuncB_2("b");
Console.WriteLine(demo.funcC("c"));
Console.WriteLine(demo.funcD("d1","d2")); Console.WriteLine("Hello World!");
}

运行结果

  1 "C:\Program Files\dotnet\dotnet.exe" C:/Users/edzjx/RiderProjects/testDemo/testDemo/bin/Debug/netcoreapp3.1/testDemo.dll
2 this is funcA!a
3 this is funcB!b
4 this is funcB_1!b
5 this is funcB_2!b
6 this is funcC!c
7 this is funcd!d1d2
8 this is funcd!d1d2
9 Hello World!
10
11 Process finished with exit code 0.
12

c# 匿名方法(函数) 匿名委托 内置泛型委托 lamada的更多相关文章

  1. 匿名方法、Lambda表达和自定义泛型委托以及Func、Action系统泛型委托

    1.匿名方法的概念:一个方法没有具体的名称,而只有关键字delegate.方法参数.方法体.这种方法是匿名方法. 匿名方法的好处:将具体方法和委托直接关联在一起,如果我们基于委托只需要一个方法的时候, ...

  2. C#内置泛型委托:Action委托

    1.什么是Action泛型委托 Action<T>是.NET Framework内置的泛型委托,可以使用Action<T>委托以参数形式传递方法,而不用显示声明自定义的委托.封 ...

  3. C#内置泛型委托:Func委托

    1.什么是Func委托 Func委托代表有返回类型的委托 2.Func委托定义 查看Func的定义: using System.Runtime.CompilerServices; namespace ...

  4. 生成器的send方法、递推函数、匿名函数及常用内置函数

    生成器的send方法 在使用yield方法创建生成器时,不仅可以使用next方法进行取值,还可以通过send方法向生成器的内部传值 什么是send方法? send方法相当于高级的next方法,send ...

  5. 委托+内置委托方法+多播委托+lambda表达式+事件

    委托概念:如果我们要把方法当做参数来传递的话,就要用到委托.简单来说委托是一个类型,这个类型可以赋值一个方法的引用. 声明委托: 在C#中使用一个类分两个阶段,首选定义这个类,告诉编译器这个类由什么字 ...

  6. C# 匿名委托、匿名方法、匿名对象、Lambda表达式

    一.匿名类型可通过使用 new 运算符和对象初始值创建匿名类型.示例:var v = new { Name = "Micro", Message = "Hello&quo ...

  7. JavaScript封装一个函数效果类似内置方法concat()

    JavaScript封装一个函数效果类似内置方法concat() 首先回忆concat()的作用: concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个 ...

  8. python 函数 装饰器 内置函数

    函数 装饰器 内置函数 一.命名空间和作用域 二.装饰器 1.无参数 2.函数有参数 3.函数动态参数 4.装饰器参数 三.内置函数 salaries={ 'egon':3000, 'alex':10 ...

  9. python函数知识六 内置函数二、匿名函数与内置函数三(重要)

    19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...

随机推荐

  1. C0nw4y's L!f3 G4me 代码实现

    这是我转载的博客,关于这个游戏的介绍.估计没人能get到这个游戏的blingbling的地方吧.还是蛮惊叹的. 因为这里网络实在惨淡,闲来无事实现了下这个游戏,UI尽量美化了,可惜python配置不知 ...

  2. 04-String

    动手动脑 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? s0,s1,s2字符串的内容相同,实际占用的是同一空间,引用的是同一个对象,所 ...

  3. LightningChart® .NET 8.5版重磅上线,新年特惠

    新年回馈用户 新年伊始,全球领先的数据可视化图表工具LightningChart®正式发布了.Net 8.5版本,新版软件在外观.功能和用户体验上都做了突破性的改进.LightningChart®同时 ...

  4. Web容器、Servlet容器、Spring容器、SpringMVC容器之间的关系

    以下内容为个人理解,如有误还请留言指出,不胜感激! Web容器 web容器(web服务器)主要有:Apache.IIS.Tomcat.Jetty.JBoss.webLogic等,而Tomcat.Jet ...

  5. selenium获取页面源码,判断是否存在指定内容,执行不同的操作

    本案例用于解决selenium UI自动化,判断页面是否存在指定文字,执行后续不同的操作 主要用到browser.page_source 如,保存百度分享文件到自己的百度盘中,会出现文件被删除无法保存 ...

  6. COCOAPI for windows error!

    refer this https://github.com/philferriere/cocoapi However, you may encounter a bug where you cannot ...

  7. ios--->ios沙盒总结

    ios沙盒总结 沙盒介绍 iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等 ...

  8. linux--->redis php扩展安装

    阿里云centos6.9下 redis php扩展安装 下载phpredis wget http://pecl.php.net/get/redis-3.1.0.tgz 或 wget https://g ...

  9. java实现字符串翻转

    public class StringReverse { /*一共写了三个函数func1 func2 func3 * 时间: 2019年9月12日9:00 * func1用的反向输出到一个新的字符串中 ...

  10. Docker快速上手之搭建SpringBoot项目

    Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期 ...