分类: 嵌入式
2012-10-10 17:08:49
结构,枚举,数组的小结
首先是结构:
结构的声明struct structName{}
对于结构有一些注意点:
这里对结构体和 类做一个比较:
成员的访问修饰符可是private,public但不可以是protected 因为protected只有在继承的时候使用 因为结构体不可以被继承。
结构体中不能有实例字段和初始值。
字段:
普通字段:如果有构造函数,必需在构造函数中初始化,如果没有构造函数,字段则自动初始化。
静态字段:常量字段不需要在构造函数中初始化。
在结构中,静态字段和常量用结构名调用。
方法:
普通方法实例化后调用
静态方法用类中用类名调用,结构体中用结构名调用
枚举:
数组:
一维数组就是线,二维数组是面,三维数组是体
数组有一维数组,二维数组,多维数组,交错数组
一维数组的声明:
int[] arr={1,2};
int[] a=new int[]{};
Array myarr=Array.CreateInstance(typeof(int),5);
一维数组的初始化
1、int[] arr = new int[2] { 1, 2 };
2、int[] arr = new int[] { 1, 2 };
3、int[] arr = new int[2];
arr[0] = 1;
arr[1] = 2;
4、int[] arr = { 1, 2 };
遍历:
1,for循环
for(int i=0;i { Console.WriteLine(arr[i]); } 2.foreach循环 foreach(int i in arr) { Console.WriteLine(i); } 二维数组: 声明: int[,] arr={{1,2},{3,4}}; 二维数组的初始化 1、 int[,] arr = new int[,]{{1},{2}}; 二维数组的遍历: for(int i=0;i { for(int j=0;j { Console.WriteLine(arr[i,j]); } } foreach(int i in arr) { Console.WriteLine(i);//注意这里是i,i代表二维数组的每一个元素 } 交错数组 声明: int[][] arr3=new int[3][];//外层数组有3个元素,第一个值必需给 第二个必需空着 arr3[0]=new int{1,2,3,4}; arr3[1]=new int{1,2}; arr3[2]=new int{5}; //用foreach遍历交错数组 foreach (int[] i in arr3) //用for循环遍历交错数组 for (int i = 0; i < arr3.Length; i++) 定义一个一维数组,它的每个元素是个二维数组: 创建一个Array的实例,类型为Type,维数为动态的维数 3、 CreateInstance(Type, array 创建一个Array的实例,类型为Type,维数为动态的维数 Array MyArr = Array.CreateInstance(typeof(int), 2, 3); MyArr.SetValue(1, 0, 0); MyArr.SetValue(2, 0, 1); MyArr.SetValue(3, 1, 0); foreach (int i in MyArr) { Console.WriteLine(i); } CreateInstance(Type, Int32, Int32) 创建一个Array的实例,类型为Type,一维度数值,二维度数值 Array MyArr = Array.CreateInstance(typeof(int), 2, 3); MyArr.SetValue(1, 0, 0); MyArr.SetValue(2, 0, 1); MyArr.SetValue(3, 1, 0); foreach (int i in MyArr) { Console.WriteLine(i); }
int[,] arr={{1,2},{3,4}};
{
foreach (int j in i)
{
Console.WriteLine(j);
}
}
{
for (int j = 0; j < arr3[i].Length; j++)
{
Console.WriteLine(arr3[i][j]);
}
}
int[][,] arr12 = new int[2][,];//一维数组arr12里面套了一个二维数组这个二维数组有两个元素,这两个元素都是二维数组
arr12[0] = new int[2, 1] { { 1 }, { 2 } };//一维数组arr12的第一个元素为 arr12[0],它里面是一个二维数组,为两行一列元素分别为1,2
arr12[1] = new int[2, 2] { { 4, 5 }, { 6, 7 } };//一维数组arr12的第二个元素为 arr12[1],它里面是一个二维数组,为两行两列元素分别为
for (int i = 0; i < arr12.Length; i++)
{
for (int j = 0; j < arr12[i].GetLength(0); j++)
{
for (int k = 0; k < arr12[i].GetLength(1); k++)
{
Console.WriteLine(arr12[i][j, k]);
}
}
}
用CreateInstance(Type, array
Array MyArr1 = Array.CreateInstance(typeof(int), 2, 3);
MyArr1.SetValue(1, 0, 0);//给第一行第一列赋值1
MyArr1.SetValue(2, 0, 1);//给第一行第二列赋值2
MyArr1.SetValue(3, 1, 0);//给第二行第一列赋值3
/foreach (int i in MyArr1)
{
Console.WriteLine(i);
}