c#枚举和int以及string类型之间的转换

枚举转int类型:

枚举类型默认可以跟int类型互相转换,枚举类型跟int类型是兼容的。

默认会输出当前枚举值所在的索引,从0开始:

namespace day_1
{
    public enum Person
    {
        name,
        sex,
        height,
        weight,
        address
    }
    class Hello
    {
        static void Main()
        {
            //将枚举类型转换为int类型,强制转换
            Person name = Person.name;
            int num = (int)name;
            Console.WriteLine(num); // 0
            Console.Read();
        }
    }
    
}

int类型转枚举类型:

也是强制转换,枚举类型  变量名 = (枚举类型)int变量名

规则:int变量的值相当于,枚举的索引,找到的话会把索引对应的枚举值输出,没找到会输出变量的值。

namespace day_1
{
    public enum Person
    {
        name,
        sex,
        height,
        weight,
        address
    }
    class Hello
    {
        static void Main()
        {
            int num = 2;
            int num1 = 10;
            Person person = (Person)num;
            Person person1 = (Person)num1;
            Console.WriteLine(person); // height
            Console.WriteLine(person1); // 10
            Console.Read();
        }
    }
    
}

枚举与string类型的转换:

补充:所有的额类型都可以转换成string类型,使用 - Tostring( ); 方法

枚举转字符串:

以上边规则一样,调用Tostring() 来转换为字符串:

namespace day_1
{
    public enum Person
    {
        name,
        sex,
        height,
        weight,
        address
    }
    class Hello
    {
        static void Main()
        {
            Person person = Person.name;
            string s = person.ToString();
            Console.WriteLine(s); // name
            Console.Read();
        }
    }
    
}

字符串转枚举:

要转换的枚举类型  变量  =  (要转换的枚举类型) Enum.Parse( typeof ( 要转换的枚举类型), "要转换的字符串" );

第一步:

使用:Enum.Parse()方法,调用Parse()方法的目的就是为了让它帮助我们将一个字符串,转换为对应的枚举类型

第二步:

       参数一:获取要转换的枚举的类型 ,使用typeof( ) 方法来获取,可以获取我们自定义的枚举类型;

       参数二:要转换的字符串

第三步:

与int类型转枚举类型一样,前边要声明要转的枚举类型:

注意:如果转换的字符串是数字,枚举有中没有,也不抛异常;如果转换的字符串是文本,枚举里边没有字符串定义的值的时候,会报错!

namespace day_1
{
    public enum Person
    {
        name,
        sex,
        height,
        weight,
        address
    }
    public enum Sex
    {
        fameil,
        meil
    }
    class Hello
    {
        static void Main()
        {
            string str = "1";
            // (Person) 强制转换为Parson类型
            Person person = (Person)Enum.Parse(typeof(Person), str);
            Console.WriteLine(person); // sex
            Console.ReadLine();
        }
    }
    
}

猜你喜欢

转载自blog.csdn.net/qq_42778001/article/details/108740750