enum型の値を示す文字列を取得する - enum値の文字列名での列挙と enum型からstring型への変換
UI
下図のUIを準備します。
コード
以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace EnumToString
{
public partial class FormMain : Form
{
public enum PictureMode { PM_COLOR, PM_MONOCROME, PM_SEPIA, PM_NONE }
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "";
Array array = Enum.GetValues(typeof(PictureMode));
foreach (PictureMode p in array) {
textBox1.Text += p +"\r\n";
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = Enum.GetName(typeof(PictureMode), PictureMode.PM_MONOCROME);
//または下記
//textBox1.Text = Enum.GetName(typeof(PictureMode), 0);
}
}
}
解説
Button1はenum型の値を列挙してテキストボックスに表示する例です。
Enum.GetValuesメソッドを呼び出します。引数には取得するenum型のSystem.Type オブジェクトを指定します。戻り値はArrayで受け取ります。受け取ったArrayをforeachでループしenum型の値の一覧をテキストボックスに表示します。
Button2は値からenum型の名前を取得する例です。
Enum.GetNameメソッドを用いて取得します。第一引数には対象のenum型のSystem.Type オブジェクトを指定し、第二引数に値を与えます。戻り値はstring型です。
アプリケーションの実行
アプリケーションを実行します。下図の画面が表示されます。
[Button1]をクリックします。[PictureMode]型の値を列挙してテキストボックスに表示します。
[Button2]をクリックします。値からPictureMode列挙型の名前を表示します。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用