- 博客(10)
- 资源 (4)
- 收藏
- 关注
原创 对C#构造器的理解
【前置知识】对C#中用new关键字实例化对象的理解【构造器的作用】在实例化对象时需要给一些必要的初始数据(即对象初始化),构造器决定了哪些数据是必要的,而我们可以通过构造器来给这些数据赋值,而不使用其默认的值。注解:对象需要哪些数据本质上是我们决定的,因为类是我们写出来的,而在C#中要对象创建出来时,对象需要的数据要通过构造器来知道,所以可以说构造器决定了对象需要哪些数据。这是...
2019-12-30 15:02:11 2517
原创 对C#中用new关键字实例化对象的理解
【前置知识】对值类型和引用类型的理解公共语言运行时CLR对C#数组声明方式的理解【实例化格式】类名 对象名 = new 类名 (参数列表)【相关概念辨析】类是模板,定义了对象在实例化的时候看起来像什么样子。对象是类的一个实际的例子,简称实例。实例化是从类创建对象的过程。举例而言:类可以看做是图纸,我们根据这个图纸做出来一个东西(即对象),做出来的东西就是图...
2019-12-27 16:27:50 7538 2
原创 排序算法C#实现之归并排序详解
【任务目标】将一组无序数组变为有序(文中暂定为:数组=向量)【归并排序原理】先考虑两个有序向量如何合并成为一个新的有序向量: 我们可以认为任务目标想获得的有序向量是由有序向量A和B组成,其中有序向量A又是由两个有序向量A1和A2组成,对B、A1、A2继续往下分,直到向量中元素个数为1,此时,该向量自然是有序的。(这就是在递归)(这就是分治策...
2019-12-25 10:20:36 1546 1
原创 对C#数组声明方式的理解
【最重要的两个条件】在声明数组时有两个非常重要的条件,只有满足这两个条件,声明出来的数组才能保证在程序运行的时候不出错,这两个条件是:声明的数组要有初始值 声明的数组要有存储的位置(即有分配内存给数组存储数据)【数组的声明方式】【方式一】 int[] array;//声明数组 array=new int[3];//数组实例化声明的数组要有初始值:虽然我们没有赋初始值,但...
2019-12-24 16:57:21 268
原创 对值类型和引用类型的理解
【前置知识】内存中有栈区(stack)和堆区(heap)来存放数据。对值类型和引用类型的区别这个问题而言,我们只需要明白以下两点即可:在空间大小上,栈<推 在读取速度大小上,栈>推【拓展】内存中的堆和栈到底是什么【定义】按照数据在内存中的存储位置,可以将所有数据分为值类型和引用类型两类。有类数据的规模(即数据量)很小,所以需要的空间也小,其通常存储在栈区,也即栈...
2019-12-21 16:57:10 480
原创 对C#装箱和拆箱的理解
【什么是装箱和拆箱】装箱(box)是将值类型转换为引用类型的过程,拆箱(unbox)是将引用类型转换为值类型的过程【装箱过程】先在堆上分配存储位置。(注解:引用类型的数据值放在堆中) 将值类型数据的值复制到分配好的储存位置 返回储存位置的地址(即引用)(注解:装箱过程有分配内存和复制数据两个耗费性能(即影响程序整体性能)的操作)【拆箱过程】先检查当前的引用类型数据是否可以...
2019-12-21 14:43:39 274
原创 二分查找之C#实现详解
【前置知识】二分查找是对有序数组(向量)而言的,所以在使用二分查找前要确保数组已经是顺序的(用到排序算法)。【二分查找原理】聚会时通常会玩猜数字的游戏:先由坐庄的人来写一个数字(比如在1~1000之内) 让大家轮流猜,并告诉大家正确数字比当前猜的数字大或者小 每猜一次范围就会缩小,最后猜中的人倒霉挨罚二分查找要求只能猜中位数,每次让猜的范围缩小一半,这样很快就能猜中,也即很快...
2019-12-20 11:07:23 2395
原创 对数据类型的理解
【对数据的分类】自然界中存在各种各样的数据,我们将这些数据根据其特点分为不同的类型。在这一阶段分类跟我们用什么语言(C#、C++、Java等)没有任何关系。这些数据不是我们规定出来的,而是本来就存在在自然界中的。可以将这些数据分为两类,其中一类是数,另一类是符。【数】在计算机中,将数分为整数类型(简称整型)、浮点类型(简称浮点型)。根据计算机存储数据的特点,整型又可进一步分为i...
2019-12-19 16:33:37 711
原创 C#托管代码和非托管代码的区别
【前置知识】写好的程序在运行的时候会经过以下过程(即C#编译过程):源代码(即用C#语言写好的代码)被C#编译器转换为公共中间语言(Common Intermediate Language,CIL)代码 CIL代码被公共语言运行库(Common Language Runtime,CLR)转换为机器码 (注解:【A】说法上,公共...
2019-12-10 17:20:08 2619
原创 排序算法C#实现之冒泡排序详解
【任务目标】假设现在我们有一组数据A={1,9,5,4,3,6,8,2,7,0},将数据组中的数据元素从小到大排列(即顺序,反之逆序),使得数据组由无序变为有序。【冒泡排序原理】第一步:按照从左到右的顺序获取数据元素。(注意:“从左到右”是我们在视觉上看这组数据的描述,在内存中或者说在写代码时,我们是按照数据元素的索引从小到大获取元素的。)第二步:比较获取的第一个元素与第二个元素的...
2019-12-07 10:40:27 1924
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人