在学习C#的过程中,我们发现C#是基于.NET框架的语言,它自然定义了自己的数据类型,它们包括枚举类型、结构体类型和数组类型。
- 枚举类型
//性别枚举
enum void Gender
{
//女
Female,
//男
Male
}
枚举类型使用enum关键字来完成声明。默认情况下,枚举中的每个元素都是int类型。用户可使用冒号,制定一种全新的整数值类型,如下如示:
//性别枚举
enum void Gender:byte
{
//女
Female,
//男
Male
}
如果未在枚举列表中制定元素的值,则默认会声明的第一个枚举成员设为0,之后的枚举成员一次加1。
- 结构体类型
C#中的结构体是一种值类型,通常适用于表示如Point、Rectangle和Color等轻量级对象。结构体与类有这几乎相同的语法。结构体的定义如下所示:
public struct Point
{
Public int x;
Public int y;
Public Point(int px,int,py)
{
x = px;
y = py;
}
}
- 数组类型
数组是一种引用类型,它代表了相同类型元素的集合。下面的这行代码用于声明和初始化一个数组:
type [] array = new type[arrayCount];
在这里,Type为数组元素的类型,既可以是值类型,也可以是引用类型。声明数组时还需注意。方括号[]应放在类型Type后,变量array前。
我们可以使用下面的方法访问数组元素:
Type elementValue = array[index];
这里的index是数组的小标,它是从0开始,最大不能超过数组的长度减1.如果index超出了这个范围,程序会在运行时出现IndexOutOfRangeException异常。使用的代码如下所示:
public class Program
{
public static void Main(string[] args)
{
//声明并初始化一个含有5个元素的int数组
int[] array = new int[5];
//对数组进行遍历
for(int i = 0;i <= array.Length - 1;i++)
{
//输出数组中的值
Console.WriteLine(array[i]);
}
//等待用于输入的字符而退出程序
//这行代码使程序在运行结束后不会直接退出,让读者看到运行的结果
Console.ReadLine();
}
}
上面的代码声明并初始化了一个名为array的数组,但并没有为其元素赋值。从程序的运行结果可以得出——当我们未对元素进行显示赋值时,对于int类型的数组,编译器会总动地将所有的元素设置为默认值0。