打开网易新闻 查看精彩图片

在我们的编程过程中,不免出现枚举和其他数据类型转换的情况。

将枚举类型转换成整形

之前我们讲过一个例子,用选择的方式让用户在输入的过程中选择学生的性别:

打开网易新闻 查看精彩图片

这里我们看到我们通过 (int)枚举类型.成员名 的方式,将枚举类型转换成整形,进而和用户输入进行比对。

整型转换为枚举类型:

在这个例子中我们同样可以将整形转换成枚举类型,进而和枚举进行比对。也就是强制类型转换成枚举:(枚举类型)整形变量。

打开网易新闻 查看精彩图片

我们可以通过,固定选项的方式,让用户输入数字,同时将用户输入的数字强制类型转换成我们需要比对的数据类型。

其实我们也可以直接操作用户输入的字符串,进而比对。

枚举类型转换为字符串类型:

打开网易新闻 查看精彩图片

这里我们通过枚举成员自有的ToString来将对应枚举成员转换成字符串类型,也就是枚举成员名:枚举.成员.ToString()。

字符串类型转换为枚举类型:

我们也可以直接将用户输入的字符串转换成枚举类型。不过这里我们需要用到Enum.Parse()方法。

注意:这里用到的Enum.Parse()方法,带3个参数:

第一个参数是要使用的枚举类型,其语法是typeof(枚举名)。

第二个参数是要转换的字符串。

第三个参数是一个bool,指定在进行转换时是否忽略大小写。

也就是:(枚举类型)Enum.Parse(typeof(枚举类型),字符串,是否忽略大小写)

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

不过这种方式有个缺陷,也就是当用户输入了枚举类型中没有的成员名的时候,系统会直接报异常。