C#中Enum,Int,String的互相转换

前言:本博文主要对Enum知识,作一些补充,主要是类型转换这块。更多知识,请查看本人另一篇博文:C# 枚举(Enum)精讲

一、Enum介绍

Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用 Int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。

注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。

二、声明一个Enum类型

// 声明一个枚举,表示性别,里面有两个值
// Pascal命名规则
enum Sex
{
    male, // 男
    Female, // 女
    // 最后一个, 可有可无
}

三、Enum,Int,String相互转换

1、Enum转String或String[]

  1. 利用Object.ToString()方法。
Sex sex1 = Sex.male;
string strSex = sex1.ToString();
Console.WriteLine(strSex);
// 判断是否转换成功
Console.WriteLine(strSex is String);

在这里插入图片描述

  1. 利用Enum的静态方法GetName与GetNames。
string strSex = Enum.GetName(typeof(Sex),Sex.male);
Console.WriteLine(strSex);
Console.WriteLine(strSex is String);

在这里插入图片描述

string[] strSex = Enum.GetNames(typeof(Sex));
Console.WriteLine(strSex);
Console.WriteLine(strSex is String[]);

在这里插入图片描述
2、String转Enum

  • 利用Enum的静态方法Parse。
string str = "Female";
Sex sex = (Sex)Enum.Parse(typeof(Sex), str);
Console.WriteLine(sex);
Console.WriteLine(sex is Enum);

在这里插入图片描述
3、Enum转Int

  • 因为枚举的基类型是除 Char 外的整型,所以可以进行强制转换。
int num = (int)Sex.Female;
Console.WriteLine(num);
Console.WriteLine(num is Int32);

在这里插入图片描述
4、Int转Enum

  1. 可以强制转换将整型转换成枚举类型。
Sex sex = (Sex)1;
Console.WriteLine(sex);
Console.WriteLine(sex is Enum);

在这里插入图片描述

  1. 利用Enum的静态方法ToObject。
Sex sex = (Sex)Enum.ToObject(typeof(Sex), 0);
Console.WriteLine(sex);
Console.WriteLine(sex is Enum);

在这里插入图片描述

四、判断某个整型是否定义在枚举中

Enum.IsDefined

Console.WriteLine(Enum.IsDefined(typeof(Sex), 0));
Console.WriteLine(Enum.IsDefined(typeof(Sex), "Female"));

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章