匿名方法:通过匿名委托 、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. Java入门 - 面向对象 - 05.封装

    原文地址:http://www.work100.net/training/java-encapsulation.html 更多教程:光束云 - 免费课程 封装 序号 文内章节 视频 1 概述 2 封装 ...

  2. C++ lambda 分析

    lambda 表达式分析 构造闭包:能够捕获作用域中变量的匿名函数的对象,Lambda 表达式是纯右值表达式,其类型是独有的无名非联合非聚合类类型,被称为闭包类型(closure type),所以在声 ...

  3. Redhat下如何查看nvidia显卡的工作状况

    安装完毕nvidia显卡驱动后,可以使用命令来查看显卡的工作状况,命令如下: nvidia-smi 输入上述命令后,显示界面如下 安装nvidia显卡驱动的步骤,请参照驱动安装cuda和cudnn.

  4. Add Scaffold

  5. NOI2019滚粗记

    Day -15 期末考完了,爆炸爆炸,就连数学和物理都错了好多傻*错误QwQ 哎呀管他的,NOI我来了! 跑到广附集训来了23333 Day -14 -- -2 做题,听题,哇和一群队爷在一个教室,真 ...

  6. NOIP【2016普及组】 考后有感(买铅笔,回文日期,海港,魔法阵)

    普及组考试已落下大幕,但我们那扑通扑通等待成绩的心仍然无法平静,先来给四道题做一个总结: 一. 买铅笔 自评难度:1星 其实这道题没有什么难度,生命之题,满分必拿,100分,保底啦~\(≧▽≦)/~ ...

  7. 对于kvm配置ssh

    首先我们要让自己的机器开启ssh服务 首先更新源 sudo apt-get update 安装ssh服务 sudo apt-get install openssh-server 检测是否已启动 ps ...

  8. Bate冲刺博客(3次)

    Bate冲刺博客 课程介绍 课程 (https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience) 作业要求 https://www ...

  9. c#数字图像处理(九)图像镜像

    private void mirror_Click(object sender, EventArgs e) { if (curBitmap!=null) { mirror mirForm = new ...

  10. CSS-12-盒子模型

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...