1、委托:通常指的是 多播委托

  通常的说,委托就是一个存放方法指针的容器,是一个安全的函数指针,供程序员安全调用。委托的本质就是一个类,继承于MulticastDelegate——>Delegate,在Delegate类中有一个IntPtr类型的变量来指向该方法的指针。

  通常当方法传递的参数为一个方法时,就用委托。

  委托能够将方法作为参数传递,(多播委托)调用一个委托,执行N个方法

2、集合排序

  1.Reverse()方法直接反转排序

  2.冒泡排序

int temp = ;
for(int i = ; i < arr.length; i++)
{
for(int j = i+; j < arr.length; j++)
{
if(arr[i] < arr[j])
{
temp = arr[i] ;
arr[i] = arr[j];
arr[j] = temp;
}
}
}

3、匿名方法

    并不是真的没有名字,它在CLR编译时会产生一个临时方法名。匿名方法产生后,方法指针会存放在委托变量中,供程序调用

4、多播委托

  1.可以向委托上注册多个方法(+=)

  2.也可以从委托上移除已注册的方法(-=)

  3.如果委托上注册了多个有返回值的方法,那么调用之后委托返回的是最后一个方法的返回值

5、事件

  事件的本质就是提供了一个Add和Remove方法的委托对象(编译后生成了一个私有的委托对象,同时又为该委托对象提供了一个add(+=)和一个remove(-=)方法)

  事件的内部机制就是创建一个私有的委托对象,同时又为该委托对象提供了一个add(+=)和一个remove(-=)方法,让程序员只有 += 和 -= 的操作

6、委托和事件的区别

  委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准event方式实现)事件的区别。

  事件的内部是用委托实现的,因为对于事件来讲,外部只能“注册自己+=    注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。事件是用来阉割委托实例的,类比用一个自定义类阉割的List。事件只能add、remove自己,不能赋值。事件只能 += 、 -=,不能=

  事件的简单使用:

delegate void MyDelegate(string name);
class Program
{
static event MyDelegate myEvent;
static void Main(string[] args)
{
    myEvent += new MyDelegate(Program_myEvent);
Console.ReadKey();
}
static void Program_myEvent(string name)
{
    throw new NotImplementedException();
}
}

7、三层架构

  什么是三层架构?

    通常意义上的三层架构就是将这个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)

  三层架构的目的

    为了”高内聚,低耦合“的思想,增强项目的可扩展性

  具体三层:

    表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。比如说我们打开电脑所看到的桌面。

    业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据库层的操作,对数据业务逻辑进行处理

    数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增删查改等

  三层之间的关系:

    是一种垂直的关系。三层结构是N层架构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(规则)前,上层代码是无法开发的,下层代码接口的变化将使上层的代码一起变化

  三层架构的优缺点:

    优点:分工明确,条理清晰,易于调试和维护,而且具有可扩展性

    缺点:增加成本

DotNET知识点总结五(笔记整合)的更多相关文章

  1. Spring知识点总结(五)Spring整合JDBC

     1. 回顾JDBC        a. java操作关系型数据的API.导入相关数据库的驱动包后可以通过JDBC提供的接口来操作数据库.        b. 实现JDBC的六个步骤          ...

  2. dotnet 读 WPF 源代码笔记 布局时 Arrange 如何影响元素渲染坐标

    大家是否好奇,在 WPF 里面,对 UIElement 重写 OnRender 方法进行渲染的内容,是如何受到上层容器控件的布局而进行坐标偏移.如有两个放入到 StackPanel 的自定义 UIEl ...

  3. DotNET知识点总结四(笔记整合)

    1.枚举:本质是类 如果为第一个枚举赋了一个int值,那么后面的枚举项依次递增 可以将枚举强转成他所代表的int值 C#的枚举项都是常量(可以用Reflector查看literal的IL源码) 因为枚 ...

  4. DotNET知识点总结三(笔记整合)

    使用接口的注意事项: 接口中的成员不能加访问修饰符 接口中的成员不能有任何实现 实现接口的子类必须实现接口的全部成员 一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口 ...

  5. .NET知识点总结一(笔记整合)

    1.   .net framework原理简介,C#程序的两次编译 .NET源代码——>语言编译器(第一次编译)——>MSIL+元数据(exe文件)——>CLR(公共语言运行时——类 ...

  6. .NET知识点总结二(笔记整合)

    19.什么是类型? 用来定义某一种数据在内存里开辟空间的大小,还可以预置操作此种类型数据的相关方法 20.this关键字在方法中使用时所代表的含义 this指的是当前类的对象,或者父类的类的对象(ba ...

  7. Java 面试知识点解析(五)——网络协议篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  8. 团队作业(五)-笔记app top5

    在互联网快速发展的情况下,各个行业的软件层出不穷,五花八门.各个行业都有相当多的软件介入其中,在如此多的软件之中,便有了相当激烈的竞争角逐.今天我们十五万的总冠军就着笔记APP行业中位列top 5的软 ...

  9. 小小知识点(五十一)——6G扬帆起航:拍赫兹通信与健康泛在网络助推6G新应用

    转自IEEE科技纵览  https://weibo.com/ttarticle/p/show?id=2309404454066502631625 6G扬帆起航:拍赫兹通信与健康泛在网络助推6G新应用 ...

随机推荐

  1. Delphi自定义消息应用及delphi托盘实现

    Delphi自定义消息应用及delphi托盘实现interfaceuses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Co ...

  2. HDOJ 1014 Uniform Generator(公约数问题)

    Problem Description Computer simulations often require random numbers. One way to generate pseudo-ra ...

  3. [Java] JavaMail 查询邮件

    上两篇提到如何发送邮件:JavaMail 发送 html 格式.带附件的邮件, JavaMail 简单案例.本文再演示下,如何读取邮箱上的邮件. 邮件内容的数据格式种类比较多,用户直接阅读邮件比较常见 ...

  4. J - Air Raid - hdu 1151(最小边覆盖)

    题意:给一个有向无环图,求出来最少需要几个士兵可以遍历所有的边. 分析:有向无环图的最小边覆盖 = 点数 - 最大匹配数 为什么是这样的公式??可以思考一下,如果这N个点之间没有边,是不是应该有N个士 ...

  5. (1.1.9)UVA 10930 A-Sequence(模拟)

    /* * UVA_10930_1.cpp * * Created on: 2013年10月7日 * Author: Administrator */ #include <iostream> ...

  6. [置顶] Hibernate运行机理

    Hibernate 的缓存体系 一级缓存: Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象. 每个Session 都有自己独立的缓存,且只能被当前工作单元访问. 二级缓存: Se ...

  7. cocos2d-x精灵移动的方法

    1.飞机发射子弹型 想要实现子弹的的飞行效果,又不想在每帧Update里计算位置,最好的方法调用CCMoveTo 例在发射子弹的时机,能够ccTouchBegan时: CCMoveTo* move = ...

  8. C++中的构造函数和析构函数

    构造函数: 在类实例化对象时自动执行,对类中的数据进行初始化.构造函数可以从载,可以有多个,但是只能有一个缺省构造函数. 析构函数: 在撤销对象占用的内存之前,进行一些操作的函数.析构函数不能被重载, ...

  9. quick-cocos2dx学习笔记

    20140603 下载quick,拉开拉链,跑setup.bat(注意,setup事就是在系统环境变量里加入QUICK_COCOS2DX_ROOT,假设不运行这个的话,启动player时会报找不到fr ...

  10. 【解决】hive动态添加partitions不能超过100的问题

    Author: kwu [解决]hive动态添加partitions不能超过100的问题,全量动态生成partitions超过100会出现例如以下异常: The maximum number of d ...