Enum.Parse Metoda

Definicja

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany.

Przeciążenia

Parse(Type, ReadOnlySpan<Char>)

Konwertuje zakres znaków reprezentujący nazwę lub wartość liczbową co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany.

Parse(Type, String)

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany.

Parse(Type, ReadOnlySpan<Char>, Boolean)

Konwertuje zakres znaków reprezentujący nazwę lub wartość liczbową co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

Parse(Type, String, Boolean)

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

Parse<TEnum>(String, Boolean)

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej określonej przez TEnum do równoważnego obiektu wyliczanego. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

Parse<TEnum>(ReadOnlySpan<Char>, Boolean)

Konwertuje zakres znaków reprezentujących nazwę lub wartość liczbową co najmniej jednej wyliczonej stałe określonej przez TEnum na równoważny obiekt wyliczany. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

Parse<TEnum>(ReadOnlySpan<Char>)

Konwertuje zakres znaków reprezentujących nazwę lub wartość liczbową co najmniej jednej wyliczonej stałe określonej przez TEnum na równoważny obiekt wyliczany.

Parse<TEnum>(String)

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej określonej przez TEnum do równoważnego obiektu wyliczanego.

Parse(Type, ReadOnlySpan<Char>)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje zakres znaków reprezentujący nazwę lub wartość liczbową co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany.

C#
public static object Parse (Type enumType, ReadOnlySpan<char> value);

Parametry

enumType
Type

Typ wyliczenia.

value
ReadOnlySpan<Char>

Zakres zawierający nazwę lub wartość do przekonwertowania.

Zwraca

Obiekt typu enumType, którego wartość jest reprezentowana przez value.

Wyjątki

enumType jest null.

enumType nie jest Enum.

value jest pustym ciągiem lub zawiera tylko białe znaki.

value jest nazwą, ale nie jedną z nazwanych stałych zdefiniowanych dla wyliczenia.

value znajduje się poza zakresem bazowego typu enumType.

.NET 8 i nowsze wersje: enumType jest typem wyliczania opartego na wartościach logicznych.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET 6, 7, 8, 9

Parse(Type, String)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany.

C#
public static object Parse (Type enumType, string value);
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static object Parse (Type enumType, string value);

Parametry

enumType
Type

Typ wyliczenia.

value
String

Ciąg zawierający nazwę lub wartość do przekonwertowania.

Zwraca

Obiekt typu enumType, którego wartość jest reprezentowana przez value.

Atrybuty

Wyjątki

enumType lub value jest null.

enumType nie jest Enum.

-lub-

value jest pustym ciągiem lub zawiera tylko białe znaki.

-lub-

value jest nazwą, ale nie jedną z nazwanych stałych zdefiniowanych dla wyliczenia.

value znajduje się poza zakresem bazowego typu enumType.

.NET 8 i nowsze wersje: enumType jest typem wyliczania opartego na wartościach logicznych.

Przykłady

W poniższym przykładzie użyto metody Parse(Type, String) do przeanalizowania tablicy ciągów, które są tworzone przez wywołanie metody GetNames. Używa również metody Parse(Type, String) do analizowania wartości wyliczenia, która składa się z pola bitowego.

C#
using System;

public class ParseTest
{
    [Flags]
    enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };

    public static void Main()
    {
        Console.WriteLine("The entries of the Colors enumeration are:");
        foreach (string colorName in Enum.GetNames(typeof(Colors)))
        {
            Console.WriteLine("{0} = {1:D}", colorName,
                                         Enum.Parse(typeof(Colors), colorName));
        }
        Console.WriteLine();

        Colors orange = (Colors) Enum.Parse(typeof(Colors), "Red, Yellow");
        Console.WriteLine("The orange value {0:D} has the combined entries of {0}",
                           orange);
    }
}

/*
This code example produces the following results:

The entries of the Colors Enum are:
Red = 1
Green = 2
Blue = 4
Yellow = 8

The orange value 9 has the combined entries of Red, Yellow

*/

Uwagi

Parametr value zawiera ciąg reprezentujący wartość bazową elementu członkowskiego wyliczenia lub nazwaną stałą albo listę nazwanych stałych rozdzielonych przecinkami (,). Co najmniej jedno puste spacje może poprzedzać każdą wartość, nazwę lub przecinek w value. Jeśli value jest listą, wartość zwracana jest wartością określonych nazw w połączeniu z bitową operacją OR.

Jeśli value jest nazwą, która nie odpowiada nazwanej stałej enumType, metoda zgłasza ArgumentException. Jeśli value jest reprezentacją ciągu liczby całkowitej, która nie reprezentuje bazowej wartości wyliczenia enumType, metoda zwraca element członkowski wyliczenia, którego wartość bazowa jest value konwertowana na typ całkowity. Jeśli to zachowanie jest niepożądane, wywołaj metodę IsDefined, aby upewnić się, że określona reprezentacja ciągu liczby całkowitej jest rzeczywiście elementem członkowskim enumType. Poniższy przykład definiuje wyliczenie Colors, wywołuje metodę Parse(Type, String), aby przekonwertować ciągi na odpowiadające im wartości wyliczenia, a następnie wywołuje metodę IsDefined, aby upewnić się, że określone wartości całkowite są wartościami bazowymi w wyliczenie Colors.

C#
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.

Ta operacja uwzględnia wielkość liter.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Parse(Type, ReadOnlySpan<Char>, Boolean)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje zakres znaków reprezentujący nazwę lub wartość liczbową co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

C#
public static object Parse (Type enumType, ReadOnlySpan<char> value, bool ignoreCase);

Parametry

enumType
Type

Typ wyliczenia.

value
ReadOnlySpan<Char>

Zakres zawierający nazwę lub wartość do przekonwertowania.

ignoreCase
Boolean

true ignorować wielkość liter; false w odniesieniu do sprawy.

Zwraca

Obiekt typu enumType, którego wartość jest reprezentowana przez value.

Wyjątki

enumType jest null.

enumType nie jest Enum.

value jest pustym ciągiem lub zawiera tylko białe znaki.

value jest nazwą, ale nie jedną z nazwanych stałych zdefiniowanych dla wyliczenia.

value znajduje się poza zakresem bazowego typu enumType

.NET 8 i nowsze wersje: enumType jest typem wyliczania opartego na wartościach logicznych.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET 6, 7, 8, 9

Parse(Type, String, Boolean)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej na równoważny obiekt wyliczany. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

C#
public static object Parse (Type enumType, string value, bool ignoreCase);
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static object Parse (Type enumType, string value, bool ignoreCase);

Parametry

enumType
Type

Typ wyliczenia.

value
String

Ciąg zawierający nazwę lub wartość do przekonwertowania.

ignoreCase
Boolean

true ignorować wielkość liter; false w odniesieniu do sprawy.

Zwraca

Obiekt typu enumType, którego wartość jest reprezentowana przez value.

Atrybuty

Wyjątki

enumType lub value jest null.

enumType nie jest Enum.

-lub-

value jest pustym ciągiem ("") lub zawiera tylko białe znaki.

-lub-

value jest nazwą, ale nie jedną z nazwanych stałych zdefiniowanych dla wyliczenia.

value znajduje się poza zakresem bazowego typu enumType.

.NET 8 i nowsze wersje: enumType jest typem wyliczania opartego na wartościach logicznych.

Przykłady

W poniższym przykładzie użyto metody Parse(Type, String, Boolean) do przeanalizowania tablicy ciągów, które są tworzone przez wywołanie metody GetNames. Używa również metody Parse(Type, String) do analizowania wartości wyliczenia, która składa się z pola bitowego.

C#
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.

Uwagi

Parametr value zawiera ciąg reprezentujący wartość bazową elementu członkowskiego wyliczenia lub nazwaną stałą albo listę nazwanych stałych rozdzielonych przecinkami (,). Co najmniej jedno puste spacje może poprzedzać każdą wartość, nazwę lub przecinek w value. Jeśli value jest listą, wartość zwracana jest wartością określonych nazw w połączeniu z bitową operacją OR.

Jeśli value jest nazwą, która nie odpowiada nazwanej stałej enumType, metoda zgłasza ArgumentException. Jeśli value jest reprezentacją ciągu liczby całkowitej, która nie reprezentuje bazowej wartości wyliczenia enumType, metoda zwraca element członkowski wyliczenia, którego wartość bazowa jest value konwertowana na typ całkowity. Jeśli to zachowanie jest niepożądane, wywołaj metodę IsDefined, aby upewnić się, że określona reprezentacja ciągu liczby całkowitej jest rzeczywiście elementem członkowskim enumType. Poniższy przykład definiuje wyliczenie Colors, wywołuje metodę Parse(Type, String, Boolean), aby przekonwertować ciągi na odpowiadające im wartości wyliczenia, a następnie wywołuje metodę IsDefined, aby upewnić się, że określone wartości całkowite są wartościami bazowymi w wyliczenie Colors.

Parametr ignoreCase określa, czy ta operacja uwzględnia wielkość liter.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Parse<TEnum>(String, Boolean)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej określonej przez TEnum do równoważnego obiektu wyliczanego. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

C#
public static TEnum Parse<TEnum> (string value, bool ignoreCase) where TEnum : struct;

Parametry typu

TEnum

Typ wyliczenia.

Parametry

value
String

Ciąg zawierający nazwę lub wartość do przekonwertowania.

ignoreCase
Boolean

true ignorować wielkość liter; false w odniesieniu do sprawy.

Zwraca

TEnum

Obiekt typu TEnum, którego wartość jest reprezentowana przez value.

Wyjątki

TEnum nie jest typem Enum.

value jest null.

value nie zawiera informacji wyliczenia.

.NET 8 i nowsze wersje: TEnum jest typem wyliczania opartego na wartościach logicznych.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

Parse<TEnum>(ReadOnlySpan<Char>, Boolean)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje zakres znaków reprezentujących nazwę lub wartość liczbową co najmniej jednej wyliczonej stałe określonej przez TEnum na równoważny obiekt wyliczany. Parametr określa, czy operacja jest niewrażliwa na wielkość liter.

C#
public static TEnum Parse<TEnum> (ReadOnlySpan<char> value, bool ignoreCase) where TEnum : struct;

Parametry typu

TEnum

Typ wyliczenia.

Parametry

value
ReadOnlySpan<Char>

Zakres zawierający nazwę lub wartość do przekonwertowania.

ignoreCase
Boolean

true ignorować wielkość liter; false w odniesieniu do sprawy.

Zwraca

TEnum

TEnum obiekt typu TEnum, którego wartość jest reprezentowana przez value.

Wyjątki

TEnum nie jest typem Enum.

value nie zawiera informacji wyliczenia.

.NET 8 i nowsze wersje: TEnum jest typem wyliczania opartego na wartościach logicznych.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET 6, 7, 8, 9

Parse<TEnum>(ReadOnlySpan<Char>)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje zakres znaków reprezentujących nazwę lub wartość liczbową co najmniej jednej wyliczonej stałe określonej przez TEnum na równoważny obiekt wyliczany.

C#
public static TEnum Parse<TEnum> (ReadOnlySpan<char> value) where TEnum : struct;

Parametry typu

TEnum

Typ wyliczenia.

Parametry

value
ReadOnlySpan<Char>

Zakres zawierający nazwę lub wartość do przekonwertowania.

Zwraca

TEnum

TEnum obiekt typu TEnum, którego wartość jest reprezentowana przez value.

Wyjątki

TEnum nie jest typem Enum.

value nie zawiera informacji wyliczenia.

.NET 8 i nowsze wersje: TEnum jest typem wyliczania opartego na wartościach logicznych.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET 6, 7, 8, 9

Parse<TEnum>(String)

Źródło:
Enum.cs
Źródło:
Enum.cs
Źródło:
Enum.cs

Konwertuje reprezentację ciągu nazwy lub wartości liczbowej co najmniej jednej wyliczonej stałej określonej przez TEnum do równoważnego obiektu wyliczanego.

C#
public static TEnum Parse<TEnum> (string value) where TEnum : struct;

Parametry typu

TEnum

Typ wyliczenia.

Parametry

value
String

Ciąg zawierający nazwę lub wartość do przekonwertowania.

Zwraca

TEnum

Obiekt typu TEnum, którego wartość jest reprezentowana przez value.

Wyjątki

TEnum nie jest typem Enum.

value jest null.

value nie zawiera informacji wyliczenia.

.NET 8 i nowsze wersje: TEnum jest typem wyliczania opartego na wartościach logicznych.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1