.NET Framework学习笔记(八)

廉价感情. 提交于 2019-11-27 22:49:45

13.枚举类型与位标记

枚举类型定义了一组符号名称和数值对。它属于值类型,但不能定义任何的方法、属性或事件。

//枚举类型实际就是一个定义了一组常数字段的结构而已。

struct Color : System.Enum{

     public const Color Red = (Color) 0;

     public const Color Blue = (Color) 1;

}

GetUnderlyingTypeType enumType)方法返回枚举类型实例的基础类型。C#默认为int

System.Enum.ToString方法将器数值映射为四种字符串表达形式

枚举类型表示单个数值,而位标记表示一组标记。

14.数组

数组是分配在托管堆上的引用类型,并且应用程序中的数组变量包含的是一个指向数组的引用,而非数组本身。

C#支持交错数组

Point[][] myPolygons = new Point[2][];

myPolygons[0] = new Point[10];

myPolygons[1] = new Point[30];

 

 对于引用类型的数组,且维数相同,CLR允许它们进行类型转换。

CLR不允许将元素为值类型的数组转型为任何其他类型,但可以使用Array.Copy,创建一个新数组来达到期望的效果。

Int32 [] music=new Int32[4];

Object[] mymusic = (Object[]) music;     //error

Object[] mymusic=new Object[music.length]

Array.Copy(music,mymusic,music.length);        //Copy方法不仅能进行拷贝,而且还能在拷贝每一个元素时进行相应的类型转换

 

Array.Copy方法执行的是浅拷贝,若源数组中的元素是引用类型,要获得一个深拷贝,则每个元素的类型都要实现Icloneable接口?????。

我们可以通过调用Array的静态方法CreateInstance来动态地创建数组。

e.g 1

我们要实现下图所示:

 

 

//创建下限非0的数组Revenue

 

e.g 2

定义了一个方法Redim(),用来重新调整数组的长度

转载于:https://www.cnblogs.com/yuxhust/archive/2009/03/11/1409200.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!