委托 匿名类 var隐式类型 匿名方法
委托
委托是一个类 它定义了方法的类型 实现了讲一个方法当做另一个方法的参数来传递
(委托的一个有趣且有用的属性是,他不知道也不关心所引用的方法的类 只关心引用的方法是否具有与委托相同的参数和返回类型)
多播委托
每个委托都只包含一个方法调用 调用委托的次数和调用方法的次数相同。如果需要调用委托的一次可以执行多个方法 这时我们就需要多播委托
通俗来讲 多播委托就是一个包含多个方法的委托称为多播委托
事件
基本上说是一个用户操作 如按键 点击 鼠标移动等等 或者是一些出现 如系统生成的通知 应用程序需要在事件发生时响应事件
事件在类中声明且生成 且通过使用同一个类或者其他类中的委托与事件处理程序联 包含的事件的类用于发布事件 这被称为发布器类 其他接受该事件的类被称为订阅器类
发布器是一个包含事件和委托定义的对象。事件和委托之间的联系也定义在这个对象中。发布器类的对象调用这个事件,并且通知其他对象
订阅器是一个接受事件并且提供事件处理程序的对象 在发布器类中的委托调用订阅器类中的方法(事件处理程序)
匿名类
定义:没有名字的类
特点:匿名类不能被引用 只能在创建时用new语句来声明
优势
匿名类提供了一种方便的方法 可用来将一组只读属性封装到单个对象中 而无需首先显示定义一个类型
类型名由编译器生成 并且不能再源代码级使用 每个属性的类型由编译器判断
可通过使用new运算符和对象初始值创建匿名类型
匿名类型通常用在查询表达式的select子句中 一遍返回原序列中的每个对象的属性子集
var隐式类型
隐式类型var 声明变量 是无须指定数据类型 编译器会根据赋值判断其数据类型的一种机制
优势:
通过var这个隐式类型 可以提高开发人员的开发效率 很多时候可以不考虑对象的类型 编译器会自动帮助我们判断
使用规则:
1.var类型会被编译器根据初始值的类型推断出具体的类型
2.var类型的局部变量必须赋予初始值
3.无法将null赋值给隐式类型的额局部变量
4.var类型变量的定义必须是在方法中或者在属性get set访问器中
5.var不能用作方法的参数
6.不能当做返回值类型
7.语句中值声明一次变量 声明后不能改变类型
匿名方法
C#2.0引入的一个新特性 它允许开发者内联inline声明自己的函数代码而无须使用委托函数
应用场景
1.需要一个临时方法, 该方法使用次数极少
2.这个方法的代码很短, 甚至可能比方法声明都短的情况下使用
转载于:https://www.cnblogs.com/-zillb/p/11172661.html
委托 匿名类 var隐式类型 匿名方法相关推荐
- Linq原理相关(隐式类型var、匿名类型、实例化类、集合初始化)
1. var(隐式类型) 例如: var temp ="abc"; //正确, var temp; temp = "abc" //错误 原因:隐式类 ...
- Linq之隐式类型、自动属性、初始化器、匿名类
目录 写在前面 系列文章 隐式类型 自动属性 初始化器 匿名类 总结 写在前面 上篇文章是本系列的小插曲,也是在项目中遇到,觉得有必要总结一下,就顺手写在了博客中,也希望能帮到一些朋友.本文将继续介绍 ...
- 【C#】隐式类型var
在.NET 3.0后微软引入了隐式类型var,编译器可以自动判断变量的类型,通过var这个隐式类型,可以提高开发人员的开发效率,很多时候可以不考虑对象的类型,编译器会自动帮我们判断 使用隐式类型和使用 ...
- C++ 类的隐式转换
所谓类的隐式转换,就是将实参类型转成形参类型--如果不一致的话. 这个转换与基本类型转换不太一样,具体则是在形参类型的构造函数中使用实参类型的数据,从而构造出一个临时对象. 下面的代码,类Person ...
- c# 无法将类型隐式转换_C#中的隐式类型数组
c# 无法将类型隐式转换 C#隐式类型数组 (C# Implicitly Typed Arrays) Like implicitly typed variables, we can also decl ...
- C语言隐式/显式类型转换 | C++四种强制类型转换、类的隐式转换、explicit
文章目录 C语言类型转换 隐式类型转换 显式类型转换 C++ 强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast 类的隐式类型转换 ...
- C#隐式类型和显示类型
一,在程序中我们经常会遇到:无法将类型"XXX"隐式装换为"XXX",如下例子: static void Main(string[] args){int i;i ...
- 匿名类有名字还叫匿名类吗?
先看代码和里边的问题: class NB{void A(){System.out.println("我是NB");} } class NC{void Y(NB a){a.A();} ...
- Adams隐式4阶方法解常微分方程,python实现
Adams隐式4阶方法解常微分方程,由4阶Runge-Kutta方法提供初值,隐式方法比显式复杂一些,主要是因为需要解方程.这里使用弦截法解微分方程. import math import numpy ...
最新文章
- 《你的灯亮着么》五六篇
- Grove——.NET中的ORM实现
- 很实用的jQuery事件 - toggle() 方法
- Docker 修改容器名称
- “买苹果辞退,买华为补贴”,这家公司支持国产手机的理由给我惊到了!
- 控制自己的贪念,提升自己的能力
- C语言中的free函数
- 解除移动硬盘或u盘的占用无法安全弹出问题
- 安卓设备脱离pc自动化测试,Termux模拟器下python+uiautomator2的环境设置。本人亲测,踩坑总结。
- ${pageContext.request.contextPath}的作用
- php 腾讯云 文字识别_讯飞语音转文字,图片转文字,效率高还免费
- 模态对话框和非模态对话框的区别
- win10 office2021+mathtype安装配置
- 怎样修改mysql密码
- 6个“纽扣”卖2600 索尼动捕设备要捕捉谁?
- 当生活真的过得很艰难的时候,你是怎么熬过来的?(内容来自知乎,用于自省)...
- python agg函数,python pandas自定义agg函数
- Java8之Lambda函数式编程(一)
- JAVA JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询
- 女生做动画建模师和游戏建模师哪个比较好?前景如何呢??
热门文章
- 学习Spring(六) -- Spring中Bean的作用域以及生命周期
- MySQL杂记(更新时间——2014.05.23)
- 如何处理 Windows Phone 8 动态砖变成黑白砖
- android开机启动service
- Posterior decompression
- 逆向工程(Reverse Engineering)
- valid, satisfiable, unsatisfiable的例子
- iPad导入Mac:非常快!一气呵成,直接去photo里面选择,之后左上角倒出就好,颠覆之前windows上面的认知!
- 我的linkedin profile
- 万向节死锁 gimbal lock