Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Enum.Parse-Methode: (Type, String, Boolean)

 

Veröffentlicht: Oktober 2016

Konvertiert die Zeichenfolgendarstellung des Namens oder des numerischen Werts einer oder mehrerer Enumerationskonstanten in ein entsprechendes Enumerationsobjekt. Ein Parameter gibt an, ob beim Vorgang die Groß-/Kleinschreibung nicht beachtet wird.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public static object Parse(
	Type enumType,
	string value,
	bool ignoreCase
)

Parameter

enumType
Type: System.Type

Ein Enumerationstyp.

value
Type: System.String

Eine Zeichenfolge mit dem zu konvertierenden Namen oder Wert.

ignoreCase
Type: System.Boolean

true, wenn die Groß-/Kleinschreibung nicht beachtet wird. false, wenn die Groß-/Kleinschreibung beachtet wird.

Rückgabewert

Type: System.Object

Ein Objekt vom Typ enumType, dessen Wert durch value dargestellt wird.

Exception Condition
ArgumentNullException

enumType oder value ist null.

ArgumentException

enumType ist keine Enum.

- oder -

value ist entweder eine leere Zeichenfolge ("") oder enthält nur Leerzeichen.

- oder -

value ist ein Name, aber keiner der benannten Konstanten, die für die Enumeration definiert sind.

OverflowException

value liegt außerhalb des Bereichs des zugrunde liegenden Typs von enumType.

Die value Parameter enthält, die eine Darstellung des zugrunde liegenden Wert oder eine benannte Konstante eines Enumerationsmembers oder eine Liste von benannten Konstanten, die durch ein Komma (,) getrennt. Ein oder mehrere Leerzeichen vor oder nach jeder Wert, Namen oder Komma in value. Wenn value ist eine Liste der Rückgabewert ist der Wert der angegebenen Namen, die mit einer bitweisen Kombination OR Vorgang.

Wenn value ist ein Name, der nicht auf eine benannte Konstante von enumType, löst die Methode eine ArgumentException. Wenn value ist die Darstellung einer ganzen Zahl, die nicht von einen zugrunde liegenden Wert ist die enumType -Enumeration, die Methode gibt einen Enumeration, deren zugrunde liegender Wert value in einen ganzzahligen Typ konvertiert. Wenn dieses Verhalten unerwünscht ist, rufen Sie die IsDefined Methode, um sicherzustellen, dass eine bestimmte Zeichenfolge-Darstellung einer ganzen Zahl tatsächlich ein Mitglied ist enumType. Das folgende Beispiel definiert eine Colors -Enumeration, ruft die Parse(Type, String, Boolean) Methode, um Zeichenfolgen in ihre entsprechenden Enumerationswerte und Aufrufe konvertieren die IsDefined Methode, um sicherzustellen, dass bestimmte ganzzahlige Werte zugrunde liegen, werden Werte in der Colors Enumeration.

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, true);        
            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.
//       Converted 'blue' to Blue.
//       Converted 'Blue' to Blue.
//       Yellow is not a member of the Colors enumeration.
//       Converted 'Red, Green' to Red, Green.

Die ignoreCase Parameter gibt an, ob dieser Vorgang Groß-/Kleinschreibung beachtet wird.

Im folgenden Beispiel wird die Parse(Type, String, Boolean) Methode, um ein Array von Zeichenfolgen zu analysieren, die durch Aufrufen von erstellt werden die GetNames Methode. Darüber hinaus verwendet die Parse(Type, String) Methode, um ein Enumerationswert analysiert, der aus einem Bitfeld besteht.

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, true);        
            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.
//       Converted 'blue' to Blue.
//       Converted 'Blue' to Blue.
//       Yellow is not a member of the Colors enumeration.
//       Converted 'Red, Green' to Red, Green.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: