列挙 (enum) 型、整数、および文字列間の C# の変換の概要

列挙 (enum) 型、整数、および文字列間の C# の変換の概要

まず、列挙型の変数を宣言します。

//除枚举类型转换成整数类型示范中修改了该代码,其他均采用此枚举类型的声明。
[public] enum Subject
{
    
    
    Chinese,
    Math,
    English,
    AndroidDevelop,
    GameDevelop
}

注:
① [public] キーワードは状況によって異なり、省略できます。
名前空間直下に列挙型を定義し、名前空間内の全てのクラスが使えるようにするのがベスト。
③最後の値は【,】を足すかどうか。

4 種類の変換方法:

1.列挙(enum)型→整数(int)型

Subject subject1 = Subject.Chinese;
Subject subject2 = Subject.AndroidDevelop;
int num1 = (int)subject1;
int num2 = (int)subject2;
Console.WriteLine(num1);//输出:0
Console.WriteLine(num2);//输出:3
Console.ReadKey();
注:第一个枚举元素的值为0,后面每个枚举元素的值依次递增。

列挙要素の値を変更した後、列挙子の値の変更規則を確認してください。列挙要素シーケンスが特定の値からインクリメントするように強制的に変更できることを見つけることは難しくありません。

public enum Subject
{
    
    
	//仅仅在第1小点这里修改枚举类型元素的序号
    Chinese = 5,
    Math,
    English = 10,
    AndroidDevelop,
    GameDevelop
}
Console.WriteLine((int)Subject.Chinese);//输出:5
Console.WriteLine((int)Subject.Math);//输出:6
Console.WriteLine((int)Subject.English);//输出:10
Console.WriteLine((int)Subject.AndroidDevelop);//输出:11
Console.WriteLine((int)Subject.GameDevelop);//输出:12
Console.ReadKey();

2.整数(int)型→列挙(enum)型

int i = 3;
Subject subject = (Subject)i;
Console.WriteLine(subject);//输出:AndroidDevelop
Console.ReadKey();

列挙型に変換する過程で、列挙型の要素番号に整数型の値が含まれる場合、列挙型の要素が取得され、整数型の値が含まれない場合、列挙型の要素が取得されることがわかります。 、値自体が取得されます。

int i = 8;
Subject subject = (Subject)i;
Console.WriteLine(subject);//输出:8
Console.ReadKey();

3.列挙(enum)型→文字列(string)型

Subject subject = Subject.GameDevelop;
string str = subject.ToString();
Console.WriteLine(str);//输出:GameDevelop
Console.ReadKey();

すべてを ToString() にすることができます:

int i = 1;
double d = 2.2;
char c = 'C';
decimal m = 200.5m;
Console.WriteLine(i.ToString());//输出:1
Console.WriteLine(d.ToString());//输出:2.2
Console.WriteLine(c.ToString());//输出:C
Console.WriteLine(m.ToString());//输出:200.5
Console.ReadKey();

4.文字列(string)型→列挙(enum)型

①文字列内容の値が列挙要素の名前と一致し、列挙要素の名前が出力される。

string str1 = "Math";
Subject subject1 = (Subject)Enum.Parse(typeof(Subject), str1);
Console.WriteLine(subject1);//输出:Math
Console.ReadKey();

②文字列内容の値が列挙要素の連番と一致し、対応する連番値の列挙要素名が出力される。

string str2 = "3";
Subject subject2 = (Subject)Enum.Parse(typeof(Subject), str2);
Console.WriteLine(subject2);//输出:AndroidDevelop
Console.ReadKey();

③列挙要素の通し番号と文字列内容の値が一致せず、文字列内容の値が出力される。

string str3 = "10";
Subject subject3 = (Subject)Enum.Parse(typeof(Subject), str3);
Console.WriteLine(subject3);//输出:10
Console.ReadKey();

④列挙型の要素と一致する値とテキスト内容を除いて、他の文字列のテキスト内容は列挙型に変換できないため、例外がスローされます。

//这里是错误示范!代码存在异常!
string str3 = "异常内容";
Subject subject3 = (Subject)Enum.Parse(typeof(Subject), str3);//抛出异常
Console.WriteLine(subject3);
Console.ReadKey();

著者のエネルギーが限られているため、記事には間違いや脱落が避けられませんが、専門家やネチズンは私を批判して修正することを歓迎します。

おすすめ

転載: blog.csdn.net/qq_46051312/article/details/123078574