先复习下枚举的相关基础知识:
枚举类型(Enum Type)说明
枚举只有一种成员:命名的整型常量的集合
枚举是值类型
使用枚举有效地防止用户提供无效值,使代码更加清晰
定义枚举:
注意:
枚举成员不可以使用修饰符
每个枚举成员底层都是一个常量值
默认情况下,枚举成员的类型是int
默认情况下,编译器把第一个成员赋值为0,后一个成员在前一个成员基础上加1
Enum类型中还可以使用一些有用的静态方法:
GetName方法以枚举类型和整数为参数,返回枚举成员名称
GetNames方法以枚举类型为参数,返回枚举中所有成员的名称,字符串数组
GetValues方法以枚举类型为参数,返回枚举中所有成员的值,返回Array,可以强转成自定义的枚举类型数组或int[].
enum Gender
{
boy=1,
girl=2,
ladyboy=3
}
以下是枚举常用的方法:
//Gender是枚举类型,而boy是Gender类型的常量
Gender boy = Gender.boy;
//根据枚举类型获取指定枚举成员的名称,返回字符串
string singleElementName = Enum.GetName(typeof(Gender),2);
//根据枚举类型获取所有枚举成员的名称,返回字符串数组
string[] Name_AllElements = Enum.GetNames(typeof(Gender));
//根据枚举类型获取指定枚举成员的值,返回Array
Array vals = Enum.GetValues(typeof(Gender));
//将枚举所有成员的值转成Gender类型数组
gender[] values = (Gender[])vals;
//将枚举所有成员的值转成int类型数组
int[] values1 = (int[])vals;
//t1,t2相等
Type t1 = gender.boy.GetType();
Type t2 = typeof(Gender);
C# 7.3版本以后,可以将枚举类型作为泛型类型参数的约束类型,如下demo:
public class MyEnumClass
{
public string M<T>(T t) where T : Enum
{
return Enum.GetName(t.GetType(),t);
}
}
调用泛型方法如下,即可以返回枚举成员的名称了!
//调用泛型方法,获取指定枚举成员的名称
string genderElementName_girl = new MyEnumClass().M<Gender>(Gender.girl);
标签:boy,Gender,成员,Enum,约束,类型,枚举,泛型
From: https://blog.csdn.net/weixin_44279482/article/details/137557094