目录
//示例
internal enum Color : byte
{
White,Red,Blue,Orange
}
//返回数值的字符串表示
public static string GetName (Type enumType,0bject value) ;//system.Enum中定义
public string GetEnumName (object value) ;//System.Type 中定义
//返回一个 string 数组,枚举中每个符号都对应一个string
public static string[] GetNames (Type enumType );//system.Enum 中定义
public string[] GetEnumNames ( ) ;//system.Type中定义
//定义
public static object Parse(Type enumType,string value) ;
public static object Parse(Type enumType,string value,Boolean ignoreCase);
public static Boolean TryParse<TEnum>(String value,out TEnum result) where TEnum: struct;public static Boolean TryParse<TEnum>(String value,Boolean ignoreCase,out TEnum result)where TEnum : struct;
//示例
//因为Orange定义为4, 'c'被初始化为4
color c = (color)Enum.Parse(typeof(Color),"orange",true) ;
//因为没有定义Brown,所以抛出ArgumentException异常
color c = (color)Enum.Parse(typeof (Color),"Brown",false) ;
//创建值为1的color枚举类型实例
Enum.TryParse<Color> ("1", false, out c);
//创建值为23的color枚举类型实例
Enum.TryParse<Color> ("23", false, out c) ;
//定义
public static Boolean IsDefined(Type enumType,0bject value);//system.Enum中定义public Boolean IsEnumDefined (0bject value) ;//System . Type中定义
//示例
//显示"True",因为Color将Red定义为1
Console.writeLine (Enum.IsDefined (typeof (Color), 1) );
//显示"True",因为color将white定义为0
Console.writeLine(Enum.IsDefined (typeof(Color),"white" ) ) ;
//显示"False",因为检查要区分大小写
Console.writeLine(Enum.IsDefined(typeof(color),"white") ) ;
//显示"False",因为color没有和值10对应的符号
Console.writeine (Enum. IsDefined (typeof(Color),10) ) ;
//设置只读和隐藏特性
File.SetAttributes(file,FileAttributes.ReadOnly l FileAttributes.Hidden);
//一维数组
int []myIntegers;//声明一个数组引用
myIntegers = new int [100];//创建含有100个Int32的数组
//创建一个二维数组
Double [ , ]myDoubles = new Double [10,20] ;
//创建一个三维数组,由string引用构成
String [,,]myStrings = new string [ 5,3,10];
//创建交错数组
//创建由多个Point数组构成的一维数组
Point[][]myPolygons = new Point [3] [ ];
//myPolygons [0]引用一个含有10个Point实例的数组
myPoiygons [0] = new Point [10 ] ;
//myPolygons [1]引用一个含有20个Point实例的数组
myPoiygons[1] = new Point [20 ] ;
//myPolygons[2]引用一个含有30个Point实例的数组
myPoiygons [2]= new Point [ 30 ];
//显示第一个多边形中的Point
for(int x= 0 ; x < myPolygons [0 ]. Length; x++)
console.writeLine (myPolygons [0][x])
string [ ] names = new String[] { "Aidan" ,"Grant" };
//也可以利用C#隐式类型的局部变量功能
var [ ] names = new String[] { "Aidan" ,"Grant" };
//也可以利用C#的隐式类型的局部变量和数组,必须保持初始化的值属于同一类型
var names = new[] { "Aidan" ,"Grant" };
//也可以简化成,但var不行
string [ ] names = { "Aidan" ,"Grant" };
//创建二维Filestream数组
Filestrean [ , ]fs2dim = new Filestream [ 5,10] ;
//隐式转型为二维Object数组
Object[ , ]o2dim = fs2dim;
//二维数组不能转型为一维数组,编译器报错:
//error CS0030:无法将类型"object[*,*]"转换为"System.IO.stream [ ]"
stream []sldim =( stream [ ] ) o2dim;
//显式转型为二维Stream数组
stream[ , ]s2dim =(stream [ , ]) o2dim;
//显式转型为二维String数组
//能通过编译,但在运行时抛出InvalidcastException异常
string[,] st2cim = (string[.]) o2dim;
//创建一维Int32数组(元素是值类型)
Int32[]ildim = new Int32[5];
//不能将值类型的数组转型为其他任何类型编译器报错:
//error CS0030:无法将类型"int[]“转换为"object [ ]"
object[] oldim = (Object []) ildim;
//创建一个新数组,使用Array.copy将源数组中的每个元素1!转型为目标数组中的元素类型,并把它们复制过去。
//下面的代码创建元素为引用类型的数组,
//每个元素都是对已装箱Int32的引用
object [] ob1dim = new Object [ i1dim.Length] ;Array.copy (ildim,obldim, i1dim. Length) ;