Enum.TryParse Método

Definição

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. O valor de retorno indica se a conversão teve sucesso.

Sobrecargas

Name Description
TryParse(Type, ReadOnlySpan<Char>, Object)

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

TryParse(Type, String, Object)

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

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

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

TryParse(Type, String, Boolean, Object)

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

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

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

TryParse<TEnum>(String, TEnum)

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. O valor de retorno indica se a conversão teve sucesso.

TryParse<TEnum>(String, Boolean, TEnum)

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. Um parâmetro especifica se a operação é sensível a maiúsculas e minúsculas. O valor de retorno indica se a conversão teve sucesso.

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

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. Um parâmetro especifica se a operação é sensível a maiúsculas e minúsculas. O valor de retorno indica se a conversão teve sucesso.

TryParse(Type, ReadOnlySpan<Char>, Object)

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

Converte a representação de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas num 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 enum a usar para análise sintática.

value
ReadOnlySpan<Char>

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

result
Object

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

Devoluções

true se a conversão tivesse sucesso; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração suportado por Boole.

Aplica-se a

TryParse(Type, String, Object)

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

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num 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 enum a usar para análise sintática.

value
String

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

result
Object

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

Devoluções

true se a conversão tivesse sucesso; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração suportado por Boole.

Aplica-se a

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

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

Converte a representação de caracteres do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. Um parâmetro especifica se a operação é indistinta a maiúsculas e maiú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 enum a usar para análise sintática.

value
ReadOnlySpan<Char>

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

ignoreCase
Boolean

true para ler enumType em modo insensível a maiúsculas minúsculas; false para ler enumType em modo sensível a maiúsculas e minúsculas.

result
Object

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

Devoluções

true se a conversão tivesse sucesso; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração suportado por Boole.

Aplica-se a

TryParse(Type, String, Boolean, Object)

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

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num 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 enum a usar para análise sintática.

value
String

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

ignoreCase
Boolean

true para ler value em modo insensível a maiúsculas minúsculas; false para ler value em modo sensível a maiúsculas e minúsculas.

result
Object

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

Devoluções

true se a conversão tivesse sucesso; false caso contrário.

Exceções

.NET 8 e versões posteriores: enumType é um tipo de enumeração suportado por Boole.

Aplica-se a

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

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

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num 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 Genérico

TEnum

O tipo do result objeto.

Parâmetros

value
ReadOnlySpan<Char>

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

result
TEnum

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

Devoluções

true se a conversão tivesse sucesso; 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 suportado por Boole.

Aplica-se a

TryParse<TEnum>(String, TEnum)

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

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. O valor de retorno indica se a conversão teve sucesso.

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 Genérico

TEnum

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

Parâmetros

value
String

A representação da cadeia sensível a maiúsculas minúsculas do nome da enumeração ou do valor subjacente a converter.

result
TEnum

Quando este método retorna, 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, contém o valor padrão do tipo subjacente de TEnum. Este parâmetro é passado sem inicializar.

Devoluções

true se o value parâmetro foi convertido com sucesso; 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 suportado por Boole.

Exemplos

O exemplo seguinte define uma Colors enumeração, chama o TryParse<TEnum>(String, TEnum) método para converter cadeias para os respetivos valores de enumeração e chama o IsDefined método para garantir que determinados valores integrais são valores subjacentes na Colors enumeração.

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.

Observações

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

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

Se value é um nome que não corresponde a uma constante nomeada de TEnum, o método devolve false. Se value for a representação da cadeia de um inteiro que não representa um valor subjacente da TEnum enumeração, o método devolve um membro da enumeração cujo valor subjacente é value convertido num tipo integral. Se este comportamento for indesejável, chame-se ao IsDefined método para garantir que uma representação particular de cadeia de um inteiro é na verdade um membro de TEnum.

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

Ver também

Aplica-se a

TryParse<TEnum>(String, Boolean, TEnum)

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

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. Um parâmetro especifica se a operação é sensível a maiúsculas e minúsculas. O valor de retorno indica se a conversão teve sucesso.

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 Genérico

TEnum

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

Parâmetros

value
String

A representação da cadeia do nome da enumeração ou do valor subjacente a converter.

ignoreCase
Boolean

true ignorar o caso; false para considerar o caso.

result
TEnum

Quando este método retorna, 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, contém o valor padrão do tipo subjacente de TEnum. Este parâmetro é passado sem inicializar.

Devoluções

true se o value parâmetro foi convertido com sucesso; 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 suportado por Boole.

Exemplos

O exemplo seguinte define uma Colors enumeração, chama o TryParse<TEnum>(String, Boolean, TEnum) método para converter cadeias para os respetivos valores de enumeração e chama o IsDefined método para garantir que determinados valores integrais são valores subjacentes na Colors enumeração. O TryParse<TEnum>(String, Boolean, TEnum) método utiliza comparação insensível a maiúsculos e maiúsculos ao tentar converter as representações das cadeias de constantes nomeadas para os seus valores equivalentes de enumeração.

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.

Observações

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

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

Se value é um nome que não corresponde a uma constante nomeada de TEnum, o método devolve false. Se value for a representação da cadeia de um inteiro que não representa um valor subjacente da TEnum enumeração, o método devolve um membro da enumeração cujo valor subjacente é value convertido num tipo integral. Se este comportamento for indesejável, chame-se ao IsDefined método para garantir que uma representação particular de cadeia de um inteiro é na verdade um membro de TEnum.

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

Ver também

Aplica-se a

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

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

Converte a representação em cadeia do nome ou valor numérico de uma ou mais constantes enumeradas num objeto enumerado equivalente. Um parâmetro especifica se a operação é sensível a maiúsculas e minúsculas. O valor de retorno indica se a conversão teve sucesso.

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 Genérico

TEnum

O tipo do result objeto.

Parâmetros

value
ReadOnlySpan<Char>

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

ignoreCase
Boolean

true ignorar o caso; false para considerar o caso.

result
TEnum

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

Devoluções

true se a conversão tivesse sucesso; 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 suportado por Boole.

Aplica-se a