// 总结:
// 泛型:把类,方法,属性,字段做到了通用化
// 反射:操作dll文件的一个帮助类库
// 特性:就是一个特殊的类 自定义标记属性特性 他就是AOP的另一种实现方式 验证属性
// 委托:就是多播委托,可以保存一个或者多个方法的信息。可以用来传递方法(把方法当作参数传递)。主要用来实现代码的解耦。
// 事件:就是委托的安全版本,在定义委托和调用委托在同一个类里面操作,外面不能操作。

// Lambda
// 历史:
// 版本1:普通方法的调用 FunName() {};
// 版本2:使用了匿名方法(没有名字的方法) delegate ( 参数 ){ 方法体 }
// 版本3:lambda表达式 () => {};
DateTime dateTime = DateTime.Now;
// Write() WriteLine() 区别:是否换行
// => 念成 goes to
// 泛型委托 -- Action Func 区别:是否带返回值
// Action是.NET内部提供的一个无返回值、泛型的委托,有16重载,分别是0个参数~15个参数;
delegate void Action<in T, in T1, in T2>(T obj, T1 obj1, T2 obj2);
delegate void testFn(int a, string b); // 定义一个委托
Action testFn1 = () => Console.WriteLine("Lambda表达式省略return的写法"); // 事件
Action<DateTime> testTimeFn = (d) => { }; // Action<参数类型>
// 有返回值的函数
// Func其实跟Action很像,只是它是带有返回值的委托。也是有15个重载:
delegate TR Func<in T, in T1, in T2, out TR>(T obj, T1 obj1, T2 obj2);
Func<DateTime> func = () => DateTime.Now; // 此时<DateTime> 是返回值的类型 不在是参数的类型了
// 使用变量接收当前时间
DateTime currTime = func();

dotnet的Lambda表达式 委托泛型(2) Action Func的更多相关文章

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

    引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录 ...

  2. 泛型委托及委托中所涉及到匿名方法、Lambda表达式

    泛型委托及委托中所涉及到匿名方法.Lambda表达式 引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到 ...

  3. 对委托 以及 action func 匿名函数 以及 lambda表达式的简单记录

    class Program { public delegate void MyDelegate(string str); static void Main(string[] args) { // My ...

  4. 【读书笔记】C#高级编程 第八章 委托、lambda表达式和事件

    (一)引用方法 委托是寻址方法的.NET版本.委托是类型安全的类,它定义了返回类型和参数的类型.委托不仅包含对方法的引用,也可以包含对多个方法的引用. Lambda表达式与委托直接相关.当参数是委托类 ...

  5. 24.C# Lambda表达式

    1.Lambda表达式的含义 Lambda表达式是C#3.0引入的一种结构,使用它可以简化C#编程. 2.Lambda表达式与匿名方法 我们知道匿名方法可用于事件处理,如下delegate声明了一个匿 ...

  6. C# 基础知识系列- 6 Lambda表达式和Linq简单介绍

    前言 C#的lambda和Linq可以说是一大亮点,C#的Lambda无处不在,Linq在数据查询上也有着举足轻重的地位. 那么什么是Linq呢,Linq是 Language Intergrated ...

  7. JDK8的新特性——Lambda表达式

    JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”.尽管JDK8已不再“新”,但它的重要特性之一——Lambda表达式依然是不被大部分开发者所熟练运用,甚至不被开发者所熟知. ...

  8. C# 3.0 / C# 3.5 Lambda 表达式

    概述 Lambda 表达式的本质就是匿名函数.(而匿名方法的本质是委托) “Lambda 表达式”是一个匿名函数,可以包含表达式和语句,并且可用于创建委托或表达式树类型. (Lambda 表达式的运算 ...

  9. JDK 8 中Lambda表达式的使用

    认识Lambda表达式 首先来引入一个示例 new Thread(new Runnable() {     @Override     public void run() {         Syst ...

  10. MVC ---- Lambda表达式

    Lambda表达式是比匿名函数还简洁的一种匿名方法语法 Lambda表达式缩写推演 new Func<string,int>(delegate(string str){return str ...

随机推荐

  1. Jmeter函数助手1-CSVRead

    CSVRead函数适用于读取文件获取参数值. 用于获取值的CSV文件 | *别名:csv文件路径 CSV文件列号| next| *alias:读取列,0表示第一列,1表示第二列 1.首先我们需要一个文 ...

  2. 【SpringMVC】01 快速上手

    环境搭建 EvBuild 环境组成: - JDK 1.8 + - IDEA 2018 + - Maven 3.0 + - Tomcat 8.0 + 搭建步骤: 1.创建Maven - SpringMV ...

  3. 论文写作:“et al.”和“etc.”在英语中的区别

    "et al."和"etc."在英语中有不同的用法和含义.以下是它们的区别和具体用法: et al. "et al."是拉丁短语" ...

  4. 失温急救处理方法——1.快速复温;2.心肺复苏;3.口服或静脉注射生理盐水(40 ~ 42 ℃ ,小剂量250 mL);4.口服或静脉注射抗血栓药物,如布洛芬

    相关: https://haokan.baidu.com/v?pd=wisenatural&vid=14530104659934311010 参考: https://m.bjnews.com. ...

  5. 最为期待的国产3D游戏 —— 3A大作 ——《黑神话:悟空》

    地址: https://www.heishenhua.com/

  6. conda报错、anconda报错:requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    anconda报错,报错信息: requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 不能使用c ...

  7. 制约国产深度学习框架发展的根本原因 —— AI芯片的无法自主生产或量产

    秉着没事就胡言乱语的宗旨,这里在接着胡说八道一下. 国外的深度学习框架如TensorFlow.pytorch.Jax打的如火如荼,按照以往惯例我们是不应该去做自主研发软件系统的,毕竟硬件不在掌握之下, ...

  8. java多线程之-不可变final

    1.背景 final这个关键字相信大家不陌生吧... 看看下面的案例 2.时间格式化之线程不安全SimpleDateFormat package com.ldp.demo08final; import ...

  9. JavaScript中的包装类型详解

    JavaScript中的包装类型详解 在 JavaScript 中,我们有基本类型和对象类型两种数据类型. 基本类型包括 String,Number,Boolean,null,undefined 和 ...

  10. Git回退服务器版本及receive.denyDeleteCurrent配置

    https://blog.csdn.net/sunalongl/article/details/52013435 如果某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了, ...