この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
このドキュメントはアーカイブされており、メンテナンスされていません。

Enum.Parse メソッド (Type, String)

1 つ以上の列挙定数の名前または数値の文字列形式を、等価の列挙オブジェクトに変換します。

名前空間:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

[ComVisibleAttribute(true)]
public static Object Parse(
	Type enumType,
	string value
)

パラメーター

enumType
型: System.Type
列挙型。
value
型: System.String
変換する名前または値が含まれている文字列。

戻り値

型: System.Object
値が value により表される enumType 型のオブジェクト。

例外条件
ArgumentNullException

enumType または valuenull です。

ArgumentException

enumTypeEnum ではありません。

または

value が空の文字列であるか、または空白しか含まれていません。

または

value は名前ですが、列挙体に対して定義された名前付き定数ではありません。

OverflowException

valueenumType の基になる型の範囲外の値です。

value パラメーターには、列挙体メンバーの基になる値や名前付き定数の文字列形式、またはコンマ (,) で区切られた名前付き定数のリストが含まれています。 value 内のそれぞれの値、名前、またはコンマの前または後ろに 1 つ以上の空白を付けることができます。 value がリストの場合、戻り値は、指定した名前をビットごとの OR 演算で組み合わせた値になります。

valueenumType の名前付き定数に対応しない名前の場合、このメソッドは ArgumentException をスローします。 valueenumType 列挙体の基になる値を表さない整数の文字列形式の場合、このメソッドは基になる値が整数型に変換される value である列挙体メンバーを返します。 この動作が望ましくない場合は、IsDefined メソッドを呼び出して、整数の特定の文字列形式が実際に enumType のメンバーであることを確認します。 次の例では、Colors 列挙体を定義し、Parse(Type, String) メソッドを呼び出して文字列を対応する列挙値に変換して、IsDefined メソッドを呼び出して特定の整数値が Colors 列挙体の基になる値であることを確認します。


using System;

[Flags] enum Colors { None=0, Red = 1, Green = 2, Blue = 4 };

public class Example
{
   public static void Main()
   {
      string[] colorStrings = { "0", "2", "8", "blue", "Blue", "Yellow", "Red, Green" };
      foreach (string colorString in colorStrings)
      {
         try {
            Colors colorValue = (Colors) Enum.Parse(typeof(Colors), colorString);        
            if (Enum.IsDefined(typeof(Colors), colorValue) | colorValue.ToString().Contains(","))  
               Console.WriteLine("Converted '{0}' to {1}.", colorString, colorValue.ToString());
            else
               Console.WriteLine("{0} is not an underlying value of the Colors enumeration.", colorString);
         }
         catch (ArgumentException) {
            Console.WriteLine("'{0}' is not a member of the Colors enumeration.", colorString);
         }
      }
   }
}
// The example displays the following output:
//       Converted '0' to None.
//       Converted '2' to Green.
//       8 is not an underlying value of the Colors enumeration.
//       'blue' is not a member of the Colors enumeration.
//       Converted 'Blue' to Blue.
//       'Yellow' is not a member of the Colors enumeration.
//       Converted 'Red, Green' to Red, Green.


この演算では、大文字と小文字が区別されます。

次の例では、Parse(Type, String) メソッドを使用して、GetNames メソッドの呼び出しによって作成される文字列の配列を解析します。 また、Parse(Type, String) メソッドを使用して、ビット フィールドで構成される列挙値を解析します。


using System;

[Flags] enum Colors { None=0, Red = 1, Green = 2, Blue = 4 };

public class Example
{
   public static void Main()
   {
      string[] colorStrings = { "0", "2", "8", "blue", "Blue", "Yellow", "Red, Green" };
      foreach (string colorString in colorStrings)
      {
         try {
            Colors colorValue = (Colors) Enum.Parse(typeof(Colors), colorString);        
            if (Enum.IsDefined(typeof(Colors), colorValue) | colorValue.ToString().Contains(","))  
               Console.WriteLine("Converted '{0}' to {1}.", colorString, colorValue.ToString());
            else
               Console.WriteLine("{0} is not an underlying value of the Colors enumeration.", colorString);
         }
         catch (ArgumentException) {
            Console.WriteLine("'{0}' is not a member of the Colors enumeration.", colorString);
         }
      }
   }
}
// The example displays the following output:
//       Converted '0' to None.
//       Converted '2' to Green.
//       8 is not an underlying value of the Colors enumeration.
//       'blue' is not a member of the Colors enumeration.
//       Converted 'Blue' to Blue.
//       'Yellow' is not a member of the Colors enumeration.
//       Converted 'Red, Green' to Red, Green.


.NET Framework

サポート対象: 4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
表示: