dotnet的Lambda表达式 委托泛型(2) Action Func
// 总结:
// 泛型:把类,方法,属性,字段做到了通用化
// 反射:操作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的更多相关文章
- 委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式
引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录 ...
- 泛型委托及委托中所涉及到匿名方法、Lambda表达式
泛型委托及委托中所涉及到匿名方法.Lambda表达式 引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到 ...
- 对委托 以及 action func 匿名函数 以及 lambda表达式的简单记录
class Program { public delegate void MyDelegate(string str); static void Main(string[] args) { // My ...
- 【读书笔记】C#高级编程 第八章 委托、lambda表达式和事件
(一)引用方法 委托是寻址方法的.NET版本.委托是类型安全的类,它定义了返回类型和参数的类型.委托不仅包含对方法的引用,也可以包含对多个方法的引用. Lambda表达式与委托直接相关.当参数是委托类 ...
- 24.C# Lambda表达式
1.Lambda表达式的含义 Lambda表达式是C#3.0引入的一种结构,使用它可以简化C#编程. 2.Lambda表达式与匿名方法 我们知道匿名方法可用于事件处理,如下delegate声明了一个匿 ...
- C# 基础知识系列- 6 Lambda表达式和Linq简单介绍
前言 C#的lambda和Linq可以说是一大亮点,C#的Lambda无处不在,Linq在数据查询上也有着举足轻重的地位. 那么什么是Linq呢,Linq是 Language Intergrated ...
- JDK8的新特性——Lambda表达式
JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”.尽管JDK8已不再“新”,但它的重要特性之一——Lambda表达式依然是不被大部分开发者所熟练运用,甚至不被开发者所熟知. ...
- C# 3.0 / C# 3.5 Lambda 表达式
概述 Lambda 表达式的本质就是匿名函数.(而匿名方法的本质是委托) “Lambda 表达式”是一个匿名函数,可以包含表达式和语句,并且可用于创建委托或表达式树类型. (Lambda 表达式的运算 ...
- JDK 8 中Lambda表达式的使用
认识Lambda表达式 首先来引入一个示例 new Thread(new Runnable() { @Override public void run() { Syst ...
- MVC ---- Lambda表达式
Lambda表达式是比匿名函数还简洁的一种匿名方法语法 Lambda表达式缩写推演 new Func<string,int>(delegate(string str){return str ...
随机推荐
- 【MySQL】29 索引
MySQL是一个关系型的数据库 使用标准的SQL数据格语言格式 支持大型数据库,处理千万级别的记录数据 允许多系统运行,支持多种编程语言连接 最重要的一点是MySQL允许定制,采用GPL协议,允许修改 ...
- attention机制、LSTM二者之间,是否存在attention一定优于LSTM的关系呢?
这里没有严格的论证,只是自己的一些理解. attention机制下的Transformer确实是当前AI技术中最为火热的,基于其构建的大语言模型可以说是AI技术至今最强的技术之一了,但是attenti ...
- 【转载】英特尔CEO:如果美出口管制太严,中国就必须生产自己的芯片
原文地址: https://mbd.baidu.com/newspage/data/landingsuper?context={"nid"%3A"news_9816136 ...
- 《Python数据可视化之matplotlib实践》 源码 第一篇 入门 第二章
图 2.1 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams['font.sans-serif']=['Sim ...
- Easyui所有图标
拿到自己代码上运行吧 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- Jenkins配置分布式构建环境——添加固定Agent并使用JNLP启动Agent详解
1.概述 在<Jenkins部署架构概述>这篇博文中对Jenkins部署架构进行了讲解.对于分布式架构,Jenkins包括固态Agent和动态Agent两种方案. 固定Agent(常用于虚 ...
- ABC304Ex Constrained Topological Sort 题解
https://atcoder.jp/contests/abc304/tasks/abc304_h [CSP-S 2023] 种树后半部分的加强版 对于边 \((u,v)\),不妨令 $r[u]$ 对 ...
- 卷积神经网络CNN实战:MINST手写数字识别——网络定义
本文基于python-pytorch框架,编写CNN网络,并采用CNN手写数字数据集训练.测试网络. 网络的构建 以LeNet-5 网络为例 类定义 首先先了解一下网络的最基本框架 一般而言,首先创建 ...
- Kubernetes-13:存储卷Volume介绍及使用
Volume介绍 Volume存在的意义 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题,首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失--容器以 ...
- mysql where 字符串根据英文逗号分割为数组 并判断是否包含指定字符串
SELECT * FROM table_name where FIND_IN_SET('A',column_1) or FIND_IN_SET('B', column_2) table_name : ...