在我们的编程过程中,不免出现枚举和其他数据类型转换的情况。
将枚举类型转换成整形
之前我们讲过一个例子,用选择的方式让用户在输入的过程中选择学生的性别:
这里我们看到我们通过 (int)枚举类型.成员名 的方式,将枚举类型转换成整形,进而和用户输入进行比对。
整型转换为枚举类型:
在这个例子中我们同样可以将整形转换成枚举类型,进而和枚举进行比对。也就是强制类型转换成枚举:(枚举类型)整形变量。
我们可以通过,固定选项的方式,让用户输入数字,同时将用户输入的数字强制类型转换成我们需要比对的数据类型。
其实我们也可以直接操作用户输入的字符串,进而比对。
枚举类型转换为字符串类型:
这里我们通过枚举成员自有的ToString来将对应枚举成员转换成字符串类型,也就是枚举成员名:枚举.成员.ToString()。
字符串类型转换为枚举类型:
我们也可以直接将用户输入的字符串转换成枚举类型。不过这里我们需要用到Enum.Parse()方法。
注意:这里用到的Enum.Parse()方法,带3个参数:
第一个参数是要使用的枚举类型,其语法是typeof(枚举名)。
第二个参数是要转换的字符串。
第三个参数是一个bool,指定在进行转换时是否忽略大小写。
也就是:(枚举类型)Enum.Parse(typeof(枚举类型),字符串,是否忽略大小写)
不过这种方式有个缺陷,也就是当用户输入了枚举类型中没有的成员名的时候,系统会直接报异常。
领取专属 10元无门槛券
私享最新 技术干货