Partilhar via


Enum.TryParse Método

Definição

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. O valor retornado indica se a conversão foi bem-sucedida.

Sobrecargas

TryParse(Type, ReadOnlySpan<Char>, Object)

Converte o intervalo de caracteres de representação do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

TryParse(Type, String, Object)

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

TryParse(Type, ReadOnlySpan<Char>, Boolean, Object)

Converte o intervalo de caracteres de representação do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. Um parâmetro especifica se a operação não diferencia maiúsculas de minúsculas.

TryParse(Type, String, Boolean, Object)

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

TryParse<TEnum>(ReadOnlySpan<Char>, TEnum)

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

TryParse<TEnum>(String, TEnum)

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. O valor retornado indica se a conversão foi bem-sucedida.

TryParse<TEnum>(String, Boolean, TEnum)

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. Um parâmetro especifica se a operação diferencia maiúsculas de minúsculas. O valor retornado indica se a conversão foi bem-sucedida.

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

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. Um parâmetro especifica se a operação diferencia maiúsculas de minúsculas. O valor retornado indica se a conversão foi bem-sucedida.

TryParse(Type, ReadOnlySpan<Char>, Object)

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte o intervalo de caracteres de representação do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

public:
 static bool TryParse(Type ^ enumType, ReadOnlySpan<char> value, [Runtime::InteropServices::Out] System::Object ^ % result);
public static bool TryParse (Type enumType, ReadOnlySpan<char> value, out object? result);
static member TryParse : Type * ReadOnlySpan<char> * obj -> bool
Public Shared Function TryParse (enumType As Type, value As ReadOnlySpan(Of Char), ByRef result As Object) As Boolean

Parâmetros

enumType
Type

O tipo de enumeração a ser usado para análise.

value
ReadOnlySpan<Char>

A representação de intervalo do nome ou valor numérico de uma ou mais constantes enumeradas.

result
Object

Quando esse método retorna true, contém uma constante de enumeração que representa o valor analisado.

Retornos

true se a conversão tiver sido bem-sucedida; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração com suporte booliano.

Aplica-se a

TryParse(Type, String, Object)

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

public:
 static bool TryParse(Type ^ enumType, System::String ^ value, [Runtime::InteropServices::Out] System::Object ^ % result);
public static bool TryParse (Type enumType, string? value, out object? result);
public static bool TryParse (Type enumType, string value, out object result);
static member TryParse : Type * string * obj -> bool
Public Shared Function TryParse (enumType As Type, value As String, ByRef result As Object) As Boolean

Parâmetros

enumType
Type

O tipo de enumeração a ser usado para análise.

value
String

A representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas.

result
Object

Quando esse método retorna true, contém uma constante de enumeração que representa o valor analisado.

Retornos

true se a conversão tiver sido bem-sucedida; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração com suporte booliano.

Aplica-se a

TryParse(Type, ReadOnlySpan<Char>, Boolean, Object)

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte o intervalo de caracteres de representação do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. Um parâmetro especifica se a operação não diferencia maiúsculas de minúsculas.

public:
 static bool TryParse(Type ^ enumType, ReadOnlySpan<char> value, bool ignoreCase, [Runtime::InteropServices::Out] System::Object ^ % result);
public static bool TryParse (Type enumType, ReadOnlySpan<char> value, bool ignoreCase, out object? result);
static member TryParse : Type * ReadOnlySpan<char> * bool * obj -> bool
Public Shared Function TryParse (enumType As Type, value As ReadOnlySpan(Of Char), ignoreCase As Boolean, ByRef result As Object) As Boolean

Parâmetros

enumType
Type

O tipo de enumeração a ser usado para análise.

value
ReadOnlySpan<Char>

A representação de intervalo do nome ou valor numérico de uma ou mais constantes enumeradas.

ignoreCase
Boolean

true ler enumType no modo que não diferencia maiúsculas de minúsculas; false ler enumType no modo sensível ao caso.

result
Object

Quando esse método retorna true, contém uma constante de enumeração que representa o valor analisado.

Retornos

true se a conversão tiver sido bem-sucedida; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração com suporte booliano.

Aplica-se a

TryParse(Type, String, Boolean, Object)

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

public:
 static bool TryParse(Type ^ enumType, System::String ^ value, bool ignoreCase, [Runtime::InteropServices::Out] System::Object ^ % result);
public static bool TryParse (Type enumType, string? value, bool ignoreCase, out object? result);
public static bool TryParse (Type enumType, string value, bool ignoreCase, out object result);
static member TryParse : Type * string * bool * obj -> bool
Public Shared Function TryParse (enumType As Type, value As String, ignoreCase As Boolean, ByRef result As Object) As Boolean

Parâmetros

enumType
Type

O tipo de enumeração a ser usado para análise.

value
String

A representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas.

ignoreCase
Boolean

true ler value no modo que não diferencia maiúsculas de minúsculas; false ler value no modo sensível ao caso.

result
Object

Quando esse método retorna true, contém uma constante de enumeração que representa o valor analisado.

Retornos

true se a conversão tiver sido bem-sucedida; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração com suporte booliano.

Aplica-se a

TryParse<TEnum>(ReadOnlySpan<Char>, TEnum)

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente.

public:
generic <typename TEnum>
 where TEnum : value class static bool TryParse(ReadOnlySpan<char> value, [Runtime::InteropServices::Out] TEnum % result);
public static bool TryParse<TEnum> (ReadOnlySpan<char> value, out TEnum result) where TEnum : struct;
static member TryParse : ReadOnlySpan<char> * 'Enum -> bool (requires 'Enum : struct)
Public Shared Function TryParse(Of TEnum As Structure) (value As ReadOnlySpan(Of Char), ByRef result As TEnum) As Boolean

Parâmetros de tipo

TEnum

O tipo do objeto result.

Parâmetros

value
ReadOnlySpan<Char>

A representação de intervalo do nome ou valor numérico de uma ou mais constantes enumeradas.

result
TEnum

Quando esse método retorna true, contém uma constante de enumeração que representa o valor analisado.

Retornos

true se a conversão tiver sido bem-sucedida; false caso contrário.

Exceções

TEnum não é um tipo de enumeração.

.NET 8 e versões posteriores: TEnum é um tipo de enumeração com suporte booliano.

Aplica-se a

TryParse<TEnum>(String, TEnum)

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. O valor retornado indica se a conversão foi bem-sucedida.

public:
generic <typename TEnum>
 where TEnum : value class static bool TryParse(System::String ^ value, [Runtime::InteropServices::Out] TEnum % result);
public static bool TryParse<TEnum> (string value, out TEnum result) where TEnum : struct;
public static bool TryParse<TEnum> (string? value, out TEnum result) where TEnum : struct;
static member TryParse : string * 'Enum -> bool (requires 'Enum : struct)
Public Shared Function TryParse(Of TEnum As Structure) (value As String, ByRef result As TEnum) As Boolean

Parâmetros de tipo

TEnum

O tipo de enumeração no qual converter value.

Parâmetros

value
String

A representação de cadeia de caracteres que diferencia maiúsculas de minúsculas do nome da enumeração ou do valor subjacente a ser convertido.

result
TEnum

Quando esse método é retornado, contém um objeto do tipo TEnum cujo valor é representado por value se a operação de análise for bem-sucedida. Se a operação de análise falhar, conterá o valor padrão do tipo subjacente de TEnum. Esse parâmetro é passado sem inicialização.

Retornos

true se o parâmetro value tiver sido convertido com êxito; caso contrário, false.

Exceções

TEnum não é um tipo de enumeração.

.NET 8 e versões posteriores: TEnum é um tipo de enumeração com suporte booliano.

Exemplos

O exemplo a seguir define uma enumeração Colors, chama o método TryParse<TEnum>(String, TEnum) para converter cadeias de caracteres em seus valores de enumeração correspondentes e chama o método IsDefined para garantir que valores integrais específicos sejam valores subjacentes na enumeração 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)
      {
         Colors colorValue;
         if (Enum.TryParse(colorString, out colorValue))
            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);
         else
            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.
open System

[<Flags>]
type Colors =
    | None = 0
    | Red = 1
    | Green = 2
    | Blue = 4

let colorStrings = 
    [ "0"; "2"; "8"; "blue"; "Blue"; "Yellow"; "Red, Green" ]
for colorString in colorStrings do
    match Enum.TryParse colorString with
    | true, colorValue ->
        if Enum.IsDefined(typeof<Colors>, colorValue) || (string colorValue).Contains "," then
            printfn $"Converted '{colorString}' to {colorValue}."
        else
            printfn $"{colorString} is not an underlying value of the Colors enumeration."
    | _ ->
        printfn $"{colorString} is not a member of the Colors enumeration."
// 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.
<Flags> Enum Colors As Integer
   None = 0
   Red = 1
   Green = 2
   Blue = 4
End Enum

Module Example
   Public Sub Main()
      Dim colorStrings() As String = {"0", "2", "8", "blue", "Blue", "Yellow", "Red, Green"}
      For Each colorString As String In colorStrings
         Dim colorValue As Colors
         If [Enum].TryParse(colorString, colorValue) Then        
            If [Enum].IsDefined(GetType(Colors), colorValue) Or colorValue.ToString().Contains(",") Then 
               Console.WriteLine("Converted '{0}' to {1}.", colorString, colorValue.ToString())
            Else
               Console.WriteLine("{0} is not an underlying value of the Colors enumeration.", colorString)            
            End If                    
         Else
            Console.WriteLine("{0} is not a member of the Colors enumeration.", colorString)
         End If
      Next
   End Sub
End Module
' 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.

Comentários

TryParse<TEnum>(String, TEnum) é idêntico ao método Parse(Type, String), exceto que, em vez de gerar uma exceção, ele retornará false se a conversão falhar. Elimina a necessidade de tratamento de exceção ao analisar a representação de cadeia de caracteres de um valor de enumeração.

O parâmetro value contém a representação de cadeia de caracteres do valor subjacente ou da constante nomeada de um membro de enumeração ou uma lista de constantes nomeadas ou valores subjacentes delimitados por vírgulas (,). Se value incluir várias constantes nomeadas ou valores, um ou mais espaços em branco poderão preceder ou seguir cada valor, nome ou vírgula em value. Se value for uma lista, result refletirá o valor dos nomes especificados ou valores subjacentes combinados com uma operação de OR bit a bit. Se value for a representação de cadeia de caracteres do nome de um valor de enumeração, a comparação de value com nomes de enumeração diferencia maiúsculas de minúsculas.

Se value for um nome que não corresponda a uma constante nomeada de TEnum, o método retornará false. Se value for a representação de cadeia de caracteres de um inteiro que não representa um valor subjacente da enumeração TEnum, o método retornará um membro de enumeração cujo valor subjacente é value convertido em um tipo integral. Se esse comportamento for indesejável, chame o método IsDefined para garantir que uma representação de cadeia de caracteres específica de um inteiro seja, na verdade, um membro do TEnum.

Se a operação de análise falhar, o parâmetro result conterá o valor padrão de 0, que pode não ser um membro da enumeração TEnum subjacente. Se nenhum valor for atribuído às constantes nomeadas em TEnum, o padrão será igual ao primeiro membro do TEnum. Caso contrário, o padrão é igual ao membro na enumeração com um valor atribuído de 0.

Confira também

Aplica-se a

TryParse<TEnum>(String, Boolean, TEnum)

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. Um parâmetro especifica se a operação diferencia maiúsculas de minúsculas. O valor retornado indica se a conversão foi bem-sucedida.

public:
generic <typename TEnum>
 where TEnum : value class static bool TryParse(System::String ^ value, bool ignoreCase, [Runtime::InteropServices::Out] TEnum % result);
public static bool TryParse<TEnum> (string value, bool ignoreCase, out TEnum result) where TEnum : struct;
public static bool TryParse<TEnum> (string? value, bool ignoreCase, out TEnum result) where TEnum : struct;
static member TryParse : string * bool * 'Enum -> bool (requires 'Enum : struct)
Public Shared Function TryParse(Of TEnum As Structure) (value As String, ignoreCase As Boolean, ByRef result As TEnum) As Boolean

Parâmetros de tipo

TEnum

O tipo de enumeração no qual converter value.

Parâmetros

value
String

A representação da cadeia de caracteres do nome da enumeração ou do valor subjacente a ser convertido.

ignoreCase
Boolean

true ignorar maiúsculas de minúsculas; false considerar o caso.

result
TEnum

Quando esse método é retornado, contém um objeto do tipo TEnum cujo valor é representado por value se a operação de análise for bem-sucedida. Se a operação de análise falhar, conterá o valor padrão do tipo subjacente de TEnum. Esse parâmetro é passado sem inicialização.

Retornos

true se o parâmetro value tiver sido convertido com êxito; caso contrário, false.

Exceções

TEnum não é um tipo de enumeração.

.NET 8 e versões posteriores: TEnum é um tipo de enumeração com suporte booliano.

Exemplos

O exemplo a seguir define uma enumeração Colors, chama o método TryParse<TEnum>(String, Boolean, TEnum) para converter cadeias de caracteres em seus valores de enumeração correspondentes e chama o método IsDefined para garantir que valores integrais específicos sejam valores subjacentes na enumeração Colors. O método TryParse<TEnum>(String, Boolean, TEnum) usa uma comparação que não diferencia maiúsculas de minúsculas ao tentar converter as representações de cadeia de caracteres de constantes nomeadas em seus valores de enumeração equivalentes.

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)
      {
         Colors colorValue;
         if (Enum.TryParse(colorString, true, out colorValue))
            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);
         else
            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.
open System

[<Flags>]
type Colors =
    | None = 0
    | Red = 1
    | Green = 2
    | Blue = 4

let colorStrings = 
    [ "0"; "2"; "8"; "blue"; "Blue"; "Yellow"; "Red, Green" ]
for colorString in colorStrings do
    match Enum.TryParse(colorString, true) with
    | true, colorValue ->
        if Enum.IsDefined(typeof<Colors>, colorValue) || (string colorValue).Contains "," then
            printfn $"Converted '{colorString}' to {colorValue}."
        else
            printfn $"{colorString} is not an underlying value of the Colors enumeration."
    | _ ->
        printfn $"{colorString} is not a member of the Colors enumeration."
// 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.
<Flags> Enum Colors As Integer
   None = 0
   Red = 1
   Green = 2
   Blue = 4
End Enum

Module Example
   Public Sub Main()
      Dim colorStrings() As String = {"0", "2", "8", "blue", "Blue", "Yellow", "Red, Green"}
      For Each colorString As String In colorStrings
         Dim colorValue As Colors
         If [Enum].TryParse(colorString, True, colorValue) Then        
            If [Enum].IsDefined(GetType(Colors), colorValue) Or colorValue.ToString().Contains(",") Then 
               Console.WriteLine("Converted '{0}' to {1}.", colorString, colorValue.ToString())
            Else
               Console.WriteLine("{0} is not an underlying value of the Colors enumeration.", colorString)            
            End If                    
         Else
            Console.WriteLine("{0} is not a member of the Colors enumeration.", colorString)
         End If
      Next
   End Sub
End Module
' 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.

Comentários

TryParse<TEnum>(String, Boolean, TEnum) é idêntico ao método Parse(Type, String, Boolean), exceto que, em vez de gerar uma exceção, ele retornará false se a conversão falhar. Elimina a necessidade de tratamento de exceção ao analisar a representação de cadeia de caracteres de um valor de enumeração.

O parâmetro value contém a representação de cadeia de caracteres do valor subjacente ou da constante nomeada de um membro de enumeração ou uma lista de constantes nomeadas ou valores subjacentes delimitados por vírgulas (,). Se value incluir várias constantes nomeadas ou valores, um ou mais espaços em branco poderão preceder ou seguir cada valor, nome ou vírgula em value. Se value for uma lista, result refletirá o valor dos nomes especificados ou valores subjacentes combinados com uma operação de OR bit a bit. Se value for a representação de cadeia de caracteres do nome de um valor de enumeração, a comparação de value com nomes de enumeração dependerá do parâmetro ignoreCase. Se true, a comparação não diferencia maiúsculas de minúsculas; se false, diferencia maiúsculas de minúsculas.

Se value for um nome que não corresponda a uma constante nomeada de TEnum, o método retornará false. Se value for a representação de cadeia de caracteres de um inteiro que não representa um valor subjacente da enumeração TEnum, o método retornará um membro de enumeração cujo valor subjacente é value convertido em um tipo integral. Se esse comportamento for indesejável, chame o método IsDefined para garantir que uma representação de cadeia de caracteres específica de um inteiro seja, na verdade, um membro do TEnum.

Se a operação de análise falhar, o parâmetro result conterá o valor padrão de 0, que pode não ser um membro da enumeração TEnum subjacente. Se nenhum valor for atribuído às constantes nomeadas em TEnum, o padrão será igual ao primeiro membro do TEnum. Caso contrário, o padrão é igual ao membro na enumeração com um valor atribuído de 0.

Confira também

Aplica-se a

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

Origem:
Enum.cs
Origem:
Enum.cs
Origem:
Enum.cs

Converte a representação de cadeia de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas em um objeto enumerado equivalente. Um parâmetro especifica se a operação diferencia maiúsculas de minúsculas. O valor retornado indica se a conversão foi bem-sucedida.

public:
generic <typename TEnum>
 where TEnum : value class static bool TryParse(ReadOnlySpan<char> value, bool ignoreCase, [Runtime::InteropServices::Out] TEnum % result);
public static bool TryParse<TEnum> (ReadOnlySpan<char> value, bool ignoreCase, out TEnum result) where TEnum : struct;
static member TryParse : ReadOnlySpan<char> * bool * 'Enum -> bool (requires 'Enum : struct)
Public Shared Function TryParse(Of TEnum As Structure) (value As ReadOnlySpan(Of Char), ignoreCase As Boolean, ByRef result As TEnum) As Boolean

Parâmetros de tipo

TEnum

O tipo do objeto result.

Parâmetros

value
ReadOnlySpan<Char>

A representação de intervalo do nome ou valor numérico de uma ou mais constantes enumeradas.

ignoreCase
Boolean

true ignorar maiúsculas de minúsculas; false considerar o caso.

result
TEnum

Quando esse método retorna true, contém uma constante de enumeração que representa o valor analisado.

Retornos

true se a conversão tiver sido bem-sucedida; false caso contrário.

Exceções

TEnum não é um tipo de enumeração.

.NET 8 e versões posteriores: TEnum é um tipo de enumeração com suporte booliano.

Aplica-se a