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. T-SQL中return 返回语句学习

    return命令用于结束当前程序的执行,返回到上一个调用它的程序或其他程序,其语法格式如下: return   整数值或变量 return语句要指定返回值,如果没有指定返回值,SQL Server系统 ...

  2. 【用PS3手柄在安卓设备上玩游戏系列】谈安卓游戏对手柄的支持

    不同的游戏对于手柄的支持程度是不一样的,对应所需要进行的手柄设置也不尽相同.我没有这样的时间和精力,针对每一款游戏去写博客,但找出不同游戏中的共同点,针对同一类的游戏去写博客,应该是可行的.我把安卓上 ...

  3. C++編程札記「基礎」

    一直以為自己最擅長的編程語言是C++,那時自己的水平停留在使用C++來實現數據結構中的各種ADT和ACM算法. 創建一個類,必須實現的成員函數 explicit構造函數 對於單參數構造函數,添加exp ...

  4. Robot Framework web测试demo

    1.Open RIDE: ride.py 2.New Project: "File" -> "New Project" ,click "OK&q ...

  5. Flask 安装 Ubuntu 14.04

    学习文档: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world 中文版学习文档 开源中国版: ...

  6. ip地址中的网络号,主机号

    当前使用的IP地址有4个字节(32bit)组成,即IPV4编码方式.每个IP地址包括两部分:网络号和主机号.当分配给主机号的二进制位越多,则能标识的主机数就越多,相应地能标识的网络数就越少,反之同理. ...

  7. (转)Maven实战(六)依赖

    我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置    依赖可以声明如下: <project> ... <dependenci ...

  8. freemarker的使用心得

    freemarker眼下尽管使用的公司不多,可是在某些时候就必须使用,当须要遍历json数据的时候,眼下市面上的好多显示组件都达不到要求唯一能用的也就仅仅有freemarker了.在java里使用的模 ...

  9. JQuery window、document、 body (转)

    转自:http://www.cnblogs.com/luhe/archive/2012/11/08/2760619.html 我电脑屏幕分辨率:1440 * 900   最大化浏览器,刷新浏览器 al ...

  10. 关键字explicit

    今天在<C++ Standard Library>中看到 explicit 的作用,在这里做一下笔记,以备下次再次忘记该关键字的作用. By using the keyword expli ...