数组
简单数组
- 数组的初始化
- 数组也是引用类型,所以在堆中分配内存,在栈中存放着引用
- 使用错误的索引会报异常:IndexOutOfRangeException
Array类
- 创建数组:Array是一个抽象类,不能使用构造函数来进行创建数组
class Program { static void Main(string[] args) { Array list = Array.CreateInstance(typeof(int), 5); for(int i = 0; i < 5; i++) { list.SetValue(i, i); } for (int i = 0; i < 5; i++) { Console.WriteLine(list.GetValue(i)); } Console.ReadLine(); } }
- 复制数组【深浅拷贝】
- 如果数组的元素是值类型,则会复制所有值。
class Program { static void Main(string[] args) { int[] array1 = new int[] { 1, 2 }; int[] array2 = (int[])array1.Clone(); Console.ReadLine(); } }
- 如果数组包含引用类型,则不复制元素,只复制引用
- Clone()和copy()的区别:Clone()会创建一个数组,而Copy()方法必须传递阶数相同且有足够元素的已有数组【类似于分割数组传值】
- 排序【sort】
枚举(Enum)
简介
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承
声明 enum 变量
声明枚举的一般语法:
enum <enum_name> { enumeration list }; // enum_name 指定枚举的类型名称。 // enumeration list 是一个用逗号分隔的标识符列表。
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:
enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
实例代码
class Program { enum Day { Mon, Tue, Wed, Thu, Fri, Sat, Sun }; static void Main() { int x = (int)Day.Fri; int y = (int)Day.Mon; Console.WriteLine("Fri = {0}", x); Console.WriteLine("Mon = " + y); Console.ReadLine(); } }