![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程语言
雨玄道长
喜欢做游戏,喜欢玩游戏,游戏改变世界
展开
-
C#委托、事件和观察者模式
委托的定义委托是方法的载体,可以承载一个或多个方法,也可以将其看成一种特殊的数据类型,而这个数据类型存储的是方法,委托都派生于System.Delegate。委托是将方法当做变量使用,有利于解决代码冗余的问题和回调的问题。委托的写法如何写一个委托,首先是在类的前面书写,但是要点是需要知道当前这个委托是需要将什么方法当做变量存入到委托中去,方法有没有参数,如果有参数的话,那么书写时需要加入与方...原创 2020-03-02 11:12:46 · 179 阅读 · 0 评论 -
C#委托
委托首先说一下,第一次写博客,可能有些许错误,欢迎交流:好了,说一下委托,这里我就用C#中的委托来介绍一下什么是委托:委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递。委托是一种特殊类型的对象,其特殊之处在于委托中包含的只是一个活多个方法的地址,而不是数据。委托虽然看起来像是一种类型,但其实定义一个委托,是定义了一个新的类。那么C#中有哪些委托呢,我介绍两种:Action委托...原创 2018-11-03 19:01:58 · 114 阅读 · 0 评论 -
委托
这篇是继上一篇的一个补充(也可以说是扩展),主要补充三点:1.冒泡排序的扩展(冒泡排序的通用化(利用到了委托));2.匿名方法;3.Lambda表达式;首先讲一下冒牌排序的扩展方法,相信对编程熟悉的人都知道冒泡排序的用法,双层for循环的使用;但是由于种方法需要不断的遍历数组,效率反而感觉不尽人意(代码运行速度),在这里先说一下int 类型冒泡排序的改良(其实底层代码也是这样写的)看代码...原创 2018-11-04 16:28:09 · 119 阅读 · 0 评论 -
数据结构
1.动态数组学过数据结构的都知道数组的一些属性都可以自己来进行编写,然而在进行数组属性编写的同时,我们需要考虑到数组容量的问题,一般我们会给一个出事的容量,当然这个容量在我们进行调用这个数组时也可以进行设置,不过这样就会导致数组要么容量过大导致内存浪费,要么导致容量过小需要从新设置数组容量。或许讲到这里,很多人都知道动态数组是怎么回事了,没错,动态数组就是可以根据存入数据的的数量来自动扩充(自动...原创 2018-11-25 17:45:52 · 91 阅读 · 0 评论 -
浅层副本、深层副本的讨论
现在的很多编程语言都是支持面向对象的编程,封装、继承、多态想必都是很熟悉的,这是面向对象的三大特性。所以讲到构造函数想必也不陌生,但是大多数编程构造函数时,应该都没有想到用深层副本来设计复杂对象,常用的或者是无意识的都是在用浅层副本(当然也是有可能是不用的)。浅层副本和深层副本定义浅层副本和深层副本也称浅拷贝和深拷贝,在Martin Fowler写的《Refactoring》(《重构》)中就这...原创 2019-03-22 20:31:16 · 302 阅读 · 0 评论 -
编程防御之异常
什么是异常异常是把代码中的错误或者异常事件传递给调用方代码的一种特殊手段。就像子程序中代码出现了错误,但当前子程序无法处理这个错误(”子程序不知道该如何去做“),只能将该错误传递给可以解决此错误的调用方代码,让其解决。C#异常代码格式try{程序代码块}catch(Exception e){异常处理代码块}finally{是否发生异常都要执行的代码块}C#异常实例链接...原创 2019-03-26 14:02:23 · 122 阅读 · 0 评论 -
递归及其金典实例
递归定义一个对象部分的由它自己组成或按它自己定义,则称它是递归的,在编程中函数/子程序在运行过程中直接或间接调用自身而产生的冲入现象,就是递归。递归算法递归算法包含两个部分:1.有其自身定义的与原始问题类似的更小规模的子问题,它使递归过程持续进行。2.所描述问题的最简单的情况,它有一个条件,能控制递归过程结束。递归算法的实例1.汉诺塔问题假设为n个圆盘,将n-1个圆盘看成一个整体,...原创 2019-03-26 16:14:07 · 216 阅读 · 0 评论 -
编程防御之断言
都知道在编程过程中,最难受的就是调试错误原创 2019-03-24 15:47:04 · 222 阅读 · 0 评论 -
C#各种数组排序方法介绍
1、冒泡排序双层for循环,数组内部元素不断比较交换,最终排序。时间复杂度为O(n²)private void bubbleSort(int[] array){ int median=0; for(int i=0;i<array.Length-1;i++) { for(int j=i+1;j<array.Length;j++) { ...原创 2019-04-10 19:12:44 · 14367 阅读 · 0 评论