DotNET知识点总结五(笔记整合)

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

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

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

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

2、集合排序

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

  2.冒泡排序

int temp = 0;
for(int i = 0; i < arr.length; i++)
{
      for(int j = i+1; 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层架构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(规则)前,上层代码是无法开发的,下层代码接口的变化将使上层的代码一起变化

  三层架构的优缺点:

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

    缺点:增加成本

时间: 2024-10-16 13:08:05

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

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

 1. 回顾JDBC        a. java操作关系型数据的API.导入相关数据库的驱动包后可以通过JDBC提供的接口来操作数据库.        b. 实现JDBC的六个步骤            注册数据库驱动            获取数据库连接            获取传输器对象            传输sql执行获取结果集对象            遍历结果集获取信息            关闭资源        c. 数据库连接池(数据源) C3P0连接池 2.Spring

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

19.什么是类型? 用来定义某一种数据在内存里开辟空间的大小,还可以预置操作此种类型数据的相关方法 20.this关键字在方法中使用时所代表的含义 this指的是当前类的对象,或者父类的类的对象(base只能指向父类的对象) 21.里氏替换原则 子类替换父类所在的位置 22.C#中的数据类型 值类型 简单类型(数字类型(int,short,long,float,double),字符(char),逻辑值(bool)),结构体(struct),枚举(enum) 引用类型 字符串(string),数组

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

1.   .net framework原理简介,C#程序的两次编译 .NET源代码——>语言编译器(第一次编译)——>MSIL+元数据(exe文件)——>CLR(公共语言运行时——类似于jre)——>机器代码(第二次编译)——>代码被执行 2.Main函数是什么?在程序中使用Main函数有什么需要注意的地方? 程序的入口函数!函数名字不能改变:一个程序中有且只有一个Main函数. 3.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情? Common La

Docker学习教程笔记整合(完整)

Docker学习教程笔记整合(完整) 本文主要是整理了DockerOne组织翻译的Flux7的Docker入门教程,通过markdown记录,方便离线学习.原文地址,http://dockone.io/article/101. 文中一些链接可能会跳转国外的网站,如果没有插件或开VPN的朋友,可以尝试修改一下Hosts文件,如何修改Hosts文件.或者使用XXNet插件,如何使用XXnet 介绍 Docker是一个新的容器化的技术,它轻巧,且易移植,号称"build once, configure

hexo(五)轻松整合赞赏模块

hexo在yelee主题下搭建赞赏模块赞赏模块其实特别简单,只需要准备两张图片即可.一张是你支付宝收款图片,一张是微信收款图片.就可等待收钱啦,嘻嘻~~ step1:编辑打赏模块的代码 在themes/yelee/layout/_partial/目录下新建donate.ejs文档,其中内容如下: 12345678910111213141516171819202122 <div class ="post-donate"> <div id="donate_boa

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

1.枚举:本质是类 如果为第一个枚举赋了一个int值,那么后面的枚举项依次递增 可以将枚举强转成他所代表的int值 C#的枚举项都是常量(可以用Reflector查看literal的IL源码) 因为枚举项都有对应的int值,所以Switch把他当成int看 不能定义方法.属性.事件 多个枚举有相同数值时,数值强转时,会返回其中最后一个枚举项 2.IEnumerable接口 只要实现了该接口,就可以使用foreach进行遍历.foreach循环的本质就是调用这个接口返回一个迭代器,调用迭代器的Mo

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

使用接口的注意事项: 接口中的成员不能加访问修饰符 接口中的成员不能有任何实现 实现接口的子类必须实现接口的全部成员 一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么在语法上A必须写在IA的前面,因为类是单继承的,而而接口可以多实现 显式实现接口和隐式实现接口时需要注意的问题(我们通常是隐式实现的) 类实现接口,可以显式实现接口里的方法,但是注意:一旦使用显式实现接口里的方法,那么该方法只能被接口变量调用 IFlyable fly = new Bird

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

在互联网快速发展的情况下,各个行业的软件层出不穷,五花八门.各个行业都有相当多的软件介入其中,在如此多的软件之中,便有了相当激烈的竞争角逐.今天我们十五万的总冠军就着笔记APP行业中位列top 5的软件来进行一下深入的探讨.一款好的笔记软件可以让我们更加省心的记录自己的重要的事情,并可以随时按我们的要求进行提醒.所以喜欢记录的用户在PC还有移动设备上怎么能没有几款好的笔记软件呢. 笔记软件是简单快速的个人记事备忘工具,现在大多数笔记类的软件都具备同步功能,可以在PC,移动设备与云服务器上实现同步

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

转自IEEE科技纵览  https://weibo.com/ttarticle/p/show?id=2309404454066502631625 6G扬帆起航:拍赫兹通信与健康泛在网络助推6G新应用 5G已至,6G启程.国内外对于6G核心技术.关键指标和应用场景的探索已在积极推进,其中如何选择合适的通信频段以便服务未来新型业务成为焦点之一.拍赫兹通信可以将多种形式或形态迥异的无线光通信纳入统一框架,根据典型6G应用场景和需求协同整合不同光波段,从材料.芯片.器件.系统.网络层面打通不同波长并形成