C#中枚举的使用

  • Post author:
  • Post category:其他





C#枚举的使用


枚举的使用。

首先来看枚举是什么?


枚举类型是一种的值类型,它用于声明一组命名的常数。




一.声明:






enum


枚举名







{








中间放入值.







}






如:






enum

Student





{






小明,小红





}





那么此枚举中就为小红和小明




二.枚举中的赋值










在枚举中.






1:






系统会自动给枚举中的值赋予整数的值(如果不手动赋值,可以理解为下标)






比如我们想找到他的值,可以写代码如下:






int num = (int)test.小明;




Console.WriteLine(num);


那么此时得到的结果为:0.


同理如如果输入的为




int num = (int)test.小红;




那么

得到的结果为:1.




2



如果手动给以赋值




enum Student




{






小明=10,小红





}






int num1 = (int)test.小明;



Console.WriteLine(num);


int num2 = (int)test.小红;


Console.WriteLine(num);


那么此时得到的结果为:num1=10,num2=11

而此时




enum Student





{






小明,小红=10





}





int num1 = (int)test.小明;


Console.WriteLine(num);


int num2 = (int)test.小红;


Console.WriteLine(num);


那么此时得到的结果为:num1=0,num2=10

可以看出后面的为自动增长








3:



在枚举中无法访问外面的东西(说专业点就是方法,属性)



比如:



是会报错的,当然这里放类是可以的




三:再看看enum的一下方法




enum的一些方法貌似都在Enum中(小编是一边学一边写的,有不对的地方请批评)





打开Enum后我们会发现好多方法










其实有好多方法。但大多都是重写的。









如CompareTo,Equals,Format,ToString,ToObject,Parse,GetHashCode相信大多数的方法大家都认识。





其实,HasFlag,IsDefined,GetValues,GetUnderlyingType,GetName,GetTypeCode,GetNames,大家可能有点陌生





小编留意的是

GetName,

GetNames,

GetValues










可能会常用











(小编现在从网上就找不到对其更好的解释,我们老师也不会讲,现在小编学习很困难)







(1)首先来看

GetName,方法定义为






public static string GetName(Type enumType, object value);







返回一个string类型的值







定义






string str = Enum.GetName(typeof(Student),0);





输出结果为:小明





其中有个typeof可以理解为,是通过他来找到这个enum(枚举)的









如果你在定义enum中





小明=10,小红





那么str将什么都不显示





(2)GetName,方法定义为





public static string[] GetNames(Type enumType);





返回一个

string[]类型的值






定义为:





string[] str = Enum.GetNames(typeof(

Student

));





利用for循环输出的为:小明,小红




(3)

GetValues,(小编发现不是多好用,可以不太会吧。。。)






方法定义为






public static Array GetValues(Type enumType);





返回一个Array类型的值





Array arr = Enum.GetValues(typeof(test));




也是通过

for循环输出:







for (int i = 0; i < 2; i++){








Console.WriteLine(arr.GetValue(i));






}





发现结果是一样的.











第一次发博客.希望能对大家有帮助







版权声明:本文为meishengjie111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。