C# の列挙型文字列
このチュートリアルでは、C# で文字列の列挙を作成する方法を紹介します。
C# で拡張関数を使用して文字列の列挙を作成する
列挙型は、変数が格納できる事前定義された定数値のセットです。enum
クラスは、C# で列挙を宣言するために使用されます。デフォルトでは、enum
クラス内の変数のタイプは int です。文字列値を使用して列挙型を宣言する組み込みのメソッドはありません。文字列定数を使用して列挙型を宣言する場合は、enum
クラスと拡張関数を使って実現することができます。次のコード例は、C# で enum
クラスと拡張関数を使用して文字列値の列挙を作成する方法を示しています。
using System;
namespace enum_with_string {
public enum ErrorLevel { None, Low, Medium, High }
public static class ErrorLevelExtensions {
public static string GetString(this ErrorLevel me) {
switch (me) {
case ErrorLevel.None:
return "NO ERRORS";
case ErrorLevel.Low:
return "LOW LEVEL ERROR";
case ErrorLevel.Medium:
return "MEDIUM LEVEL ERROR";
case ErrorLevel.High:
return "HIGH LEVEL ERROR";
default:
return "NO VALUE GIVEN";
}
}
}
class Program {
static void Main(string[] args) {
ErrorLevel e = ErrorLevel.None;
string output = e.GetString();
Console.WriteLine(output);
}
}
}
出力:
NO ERRORS
列挙型 ErrorLevel
を定数値 None, Low, Medium, High
で enum
キーワードで宣言しました。次に、switch()
ステートメントを使用して列挙の値を決定し、その値に従って文字列を返す拡張関数 GetString()
を作成しました。GetString()
関数の結果は、出力
文字列に保存されます。
C# で定数変数を使用して文字列の列挙を作成する
C# のクラス内でいくつかの定数変数を初期化することにより、列挙型の機能を実現することもできます。const
キーワードは、変数が定数になり、その値を変更できないことを指定します。次のコード例は、C# で定数変数を使用して文字列の列挙を作成する方法を示しています。
using System;
namespace enum_with_string {
public static class Error {
public const string None = "No Errors";
public const string Low = "Low Level Errors";
public const string Medium = "Medium Level Errors";
public const string High = "High Level Errors";
}
class Program {
static void Main(string[] args) {
String output = Error.Low;
Console.WriteLine(output);
}
}
}
出力:
Low Level Errors
Error
という名前の public static class
を宣言し、クラス内のすべての public const string
変数を初期化しました。クラスを static
に保つ理由は、main()
関数内に Error
クラスのインスタンスを作成したくないためです。Error.Low
の値を文字列変数 output
内に格納しました。このアプローチは、はるかに単純で理解しやすいものです。class
キーワードの代わりに struct
キーワードを使用した構造体でも同じことができます。
C# の ToString()
関数を使用して文字列の列挙を作成する
これは、列挙内の値の名前を C# の文字列に変換する即興の方法です。ToString()
関数を列挙型のインスタンスとともに使用して、文字列への列挙内の値の名前。次のコード例は、C# で ToString()
関数を使用して文字列の列挙を作成する方法を示しています。
using System;
namespace enum_with_string {
public enum ErrorLevel { None, Low, Medium, High }
class Program {
static void Main(string[] args) {
ErrorLevel e = ErrorLevel.None;
string output = e.ToString();
Console.WriteLine(output);
}
}
}
出力:
None
列挙型 ErrorLevel
内の名前 None
を、C# の ToString()
関数を使用して文字列に変換しました。この方法は使いやすいですが、いくつかの欠点があります。このアプローチでは、前の例のように低レベルエラー
という値を取得することはできません。このアプローチでは、C# の命名規則に従う必要があります。この方法は、1 語の文字列のみの列挙を作成する場合にのみお勧めします。それ以外の場合は、上記の 2つの方法のいずれかを使用する必要があります。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn関連記事 - Csharp String
- C# 文字列を列挙型に変換
- C# 整数を文字列に変換
- C# の switch 文で文字列を使用する
- C# で文字列をブール値に変換する方法
- C# で文字列をバイト配列に変換する方法
- C# で文字列をフロートに変換する方法