一月 16

C#中如何将字符串string转换成枚举类型 – typeof()以及Enum.Parse()的用法

在C#中,我们有时会需要将字符串类型转换成枚举类型。此时我们无法使用显示转换,只能使用隐式转换。而我们需要用到的,就是Enum.Parse()方法。以下是这个方法的一个例子:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
//声明枚举类型
enum orientation : byte
{
north = 1,
south = 2,
east = 3,
west = 4
}
class Program
{
static void Main(string[] args)
{
//枚举使用一个基本类型来存储,枚举类型可以提取的每个值都存储为该基本类型的一个值,默认情况下该类型为int;
//枚举的基本类型可以是byte,sbyte,short,ushort,int,uint,long,ulong;
//调用枚举类型
orientation myDirection = orientation.north;
Console.WriteLine("myDirection={0}",myDirection);

//将string类型转换为枚举类型,typeof(orientation)将得到orientation的类型,Parse()将进行类型转换;
string myString = "north";
orientation myDirection2 = (orientation)Enum.Parse(typeof(orientation), myString);
Console.WriteLine("myDirection2={0}", myDirection2);
Console.ReadLine();
}
}
}

在这里需要注意的是,有一个typeof方法,这个方法返回的是数值的类型。要注意,枚举不是一个单独的类型,而使用枚举定义的特定枚举类型才是类型。



文章由安静原创,发表于www.ajnote.com。转载请注明出处

发表 2019年1月16日 自 anjing 类别 "C#学习笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注