1.实例化一个数组的方式如上,首先是创建一个数组对象,然后是在堆区中创建一个数组,并将返回的地址通过赋值号的函数重载形式传给我们创建的对象的属性
1.在VS中,我们修改变量名或者是数组名的时候,不需要我们一个个去修改,VS为我们提供了一键修改功能,会自动检索当前程序段中所有同名的变量 / 数组名,然后我们可以选择更改为当前名
1.假定一开始所有的数组名为a,我们修改了一处数组名之后
1.在我们创建这个数组对象的语句旁会出现这个小灯泡,点击这个小灯泡就能够实现更改了
2.数组的元素个数被储存在属性Length中,通过点操作符访问
3.传参的时候我们传的是我们创建的数组对象 --- 相当于传址
(数组对象的数据类型是 数组中元素的数据类型[ ])
接下来介绍数组中的各种初始化方法
1.花括号中的元素的数据类型必须符合数组对元素的数据类型的要求,且元素的个数不能够大于前面规定好的元素个数
1.采用上图中的第一种方法来初始化一个数组的话,这个数组中的元素个数就等于花括号里的元素个数,且元素也等于花括号中的元素
2.上图的第二种方法就是直接将new创建数组后传过来的数组的地址作为参数传给函数(函数要用一个对应的数组对象形参来接收)
1.用上图这种方式的话就是默认数组的元素个数等于花括号里的元素个数
2.介绍一个foreach循环
1.元素类型要和数组中的元素类型一致
2.这个循环会遍历数组中的每一个元素(从下标为0开始遍历),每遍历到一个元素都会将其赋值给括号中我们创建的那个变量,我们可以对这个变量进行操作(这个操作每遍历到一个元素都会执行一次)
3.我们在foreach的圆括号中创建的变量只能够读取数组中的元素,不能够修改数组中的元素
1.一旦用foreach读取数组中的元素的话,就会将数组中的所有元素进行读取,无法更改
1.介绍一个类型var,这个类型被称为推断类型,它会根据我们赋值给变量的数据来推断并决定变量的数据类型
2.一般只有在数据类型比较长的时候采用var来代替,如果全都用var的话会导致代码的可读性较差
1.我们声明的父类类型可以接收所有的子类对象,且接收后我们能够通过父类类型访问和操作子类对象
这种方式常常用在创建接收数组的方法的形参上,通过声明一个数组父类类型,我们就可以接收和操作所有的数组子类对象
1.object 类 --- 所有类的父类(除自己以外),也就是说通过这个类创建的父类类型可以接收和操作所有的子类对象
for循环的三个部分中如果有一个部分不填的话,在执行循环的时候不填的部分相当于执行空语句(什么也不执行)
1.二维数组的下标索引是先行后列
上图是C#中创建二维数组的方式:
1.int [,] --- 注意方框里的 , 逗号,这个表示的是我们创建的是一个二维数组
(PS:创建二维数组的时候要在new处指定它的行数和列数)
2.行和列相乘就能够得到二维数组的元素个数(数组的长度Length)
3.创建好数组之后如果,数组中的元素都会被初始化为默认值0(无论是行数一维数组还是二维数组,都是这样处理的)
4.获取二维数组中行数和列数的方法:
GetLenght(参数为0的时候获取的是数组的行数 / 参数为1的时候获取的是数组的列数)
1.二维数组也有直接加花括号的初始化,格式如上,一个花括号中套多个花括号,每个花括号都表示一行,花括号之间用逗号隔开
1.上面这个图就是交错数组的图形表示,所谓的交错数组其实就是不规则的数组
2.对于交错数组而言,并不是每一个小格都是它的元素,只有一整行才能够算作是它的一个元素
接下来介绍交错数组的创建方式:
注意点:
1.两个[] [],赋值的时候表示行的方框需要填值(这是在确定交错数组中有多少个元素)
2.表示列的方框中不能够填值
3.在交错数组中每一行都是一个一维数组,这些一维数组的长度是可以随意调节的
1.上面这个操作是在给交错数组赋值。赋值的时候是在赋一个一维数组
2.通过交错数组名和索引访问到对应的行,然后给这个行赋一个一维数组
3.通过交错数组访问某一行中的某一个元素时的索引思考方式:
这个元素在交错数组的第几行中 ---- 第一个索引
这个元素在所在行中的索引 --- 第二个索引
1.遍历交错数组的方式:两层循环或者是两层foreach循环
第一层循环用来遍历交错数组中的每个数组元素
第二层循环用来遍历第一层循环遍历到的一维数组
(PS: GetLength方法只有规则的多维数组能够使用,交错数组和参数数组都不能够使用)
2.如果要获取交错数组中的元素个数(一维数组个数的话),直接用点操作符访问交错数组的Length属性就可以了
3.通过交错数组名 + 索引能够访问到交错数组中对应的一维数组,此时对这个一维数组加索引就能够访问到这个数组中对应的元素,或者是加点操作符就能够调用和访问这个数组对象中内置的方法和属性
1.交错数组中每个数组的类型都是一样的 --- 这是因为我们在创建交错数组的时候就已经规定好了
new int[m][] --- m个int[]类型的数组(大小自己定)
1.当数据的类型确定,个数不确定的时候,我们就将函数的参数设为对应类型的数组,让用户以数组的方式将数据输入
1.在数组的前面加上一个 params 就能够让数组成为一个参数数组
2.参数数组常常用在数组作为函数的参数的时候:
当参数数组作为函数参数的时候,我们在向函数传参时可以直接传元素(元素的类型必须和数组对应),这些元素会被自动存储到数组中(当然也可以传一个对应的数组过去)
最典型的就是WriteLine方法使用占位符的时候