我们在第五天学习了类型转换和一个复杂类型–枚举类型。今天我们接着学习复杂类型中的剩余两个类型–结构体和数组。
其实枚举类型和结构体比较类似,它们都是定义在命名空间中、类的上面。
这两个类型都是定义出来供我们使用的,但是是有区别的,枚举类型里面存储的是一个变量的不同取值,而结构体则表示的是不同变量。
这么说可能大家还不清楚,那是当然,我还没介绍结构体呢。
刚才说枚举类型和结构体的定义方式相同,那我们来试着定义一个结构体:
namespace CSharp学习第五课
{
struct position
{
string positionName;
int xPosition;
int yPosition;
int zPosition;
}
}
上面就是结构体的定义,可以看出与枚举类型相同,只是稍有不同:
1.使用了struct关键字,枚举类型是enum关键字;
2.结构体中不是同一个值的不同取值,而是与它相关的属性(可初始化,也可以后续赋值),定义了一个结构体之后,后面声明一个这样的结构体,就自动把该结构体中的属性全都声明了一遍,可以直接使用;
3.枚举类型最后一个值后面不加逗号,且变量值之间是用逗号隔开的,而结构体中因为内部定义的是变量,所以用分号隔开,而且最后一个变量后面理所当然要加上分号;
4.枚举类型中所有值是按照数字存储的,且按自动或指定的方式排列的,在结构体中没有这样的说法,变量的类型也是自己指定的。
结构体的用法与枚举类型也相似:先声明,然后去点出它的值或者属性:
这里我们发现报错了,也就说现在因为权限问题,访问不到positionName这个变量,下面的变量也是无法访问的,我们对结构体做一下修改:
struct position
{
public string positionName;
public int xPosition;
public int yPosition;
public int zPosition;
}
这样我们就可以点出来变量了,这一点要注意!!
说到这里我想这个结构体其实就是一个类,类名叫position,类里面定义了公开的若干个变量,在用到的时候直接用类名去new一个对象,这个对象被实例化之后就包含了其中的属性,也就可以引用里面的变量了。记得变量是公开的!
结构体我们大概介绍这么多,接下来就是数组了,数组也是三种复杂类型之一,但是与结构体和枚举类型相差非常大!
数组实际上是就是变量的集合,因为它存的是一组值,每一个值对应一个看不见的变量名。
我们先来定义一个数组: 数组类型[] (空一格)数组名;
这是最基本的定义方式:
int[] intArray;
这样我们就定义好了一个int类型的数组,当然了还没有初始化,也没有设置这个数组的长度,而且这个数组只能存放int类型的一组值,同一个数组中不能存放类型不同的值。
下面看看数组长度的指定以及给数组存入值,数组的长度确定后,数组内存的值的个数不能多于该长度:
第一种方式:
int[] intArray=new int[10]; //定义了长度为10的int类型数组
第二种方式:
int[] intArray={0,1,2,3,4,5,6,7,8,9}; //声明了一个int类型数组,并且给出了长度以及初始化
第三种方式:
int[] intArray= new int[10]{0,1,2,3,4,5,6,7,8,9}; //与上面第二个相同,只是可能会好理解一些
既然数组存的是一组值,那么我们可能需要对数组的特定值进行操作,因此数组不能直接把一堆数据存进去就算了,而是要给这些数据编号,用到哪个数据,我们就用编号去查找哪一个数据。
intArray[0]; //表示intArray数组中的第一个数据
intArray[5]; //表示intArray数组中的第六个数据
数组我们以前学习编程的时候学习过,接触的也比较多,虽然语言不太一样,但也只是形式不同,方法还是类似的,所以就不多说。
好了,接下来又是十三道练习题,可能会比较难,但是基本功无论如何都要练习!
今天的总结:大致回顾了昨天讲的枚举类型,今天又讲了结构体的定义和使用,它与枚举类型的区别、然后是数组的简单复习。
今天就先到这里,做做练习吧,欢迎大家对学习内容进行批评指正,万分感谢!!