Guid.TryParseExact Метод

Определение

Перегрузки

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Guid)

Преобразует диапазон символов, представляющий GUID, в эквивалентную структуру Guid, при условии, что строка имеет указанный формат.

TryParseExact(String, String, Guid)

Преобразует строковое представление GUID в эквивалентную структуру Guid, при условии, что строка имеет указанный формат.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Guid)

Преобразует диапазон символов, представляющий GUID, в эквивалентную структуру Guid, при условии, что строка имеет указанный формат.

public:
 static bool TryParseExact(ReadOnlySpan<char> input, ReadOnlySpan<char> format, [Runtime::InteropServices::Out] Guid % result);
public static bool TryParseExact (ReadOnlySpan<char> input, ReadOnlySpan<char> format, out Guid result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * Guid -> bool
Public Shared Function TryParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), ByRef result As Guid) As Boolean

Параметры

input
ReadOnlySpan<Char>

Доступный только для чтения диапазон, содержащий символы, представляющие GUID для преобразования.

format
ReadOnlySpan<Char>

Доступный только для чтения диапазон, содержащий символ, представляющий один из следующих описателей, указывающий точный формат, который используется при интерпретации input: "N", "D", "B", "P" или "X".

result
Guid

Структура, которая будет содержать значение после синтаксического анализа. Если метод возвращает значение true, то свойство result содержит допустимое Guid. Если метод возвращает false, result равен Empty.

Возвращаемое значение

Boolean

Значение true, если синтаксический анализ выполнен успешно; в противном случае — значение false.

Применяется к

TryParseExact(String, String, Guid)

Преобразует строковое представление GUID в эквивалентную структуру Guid, при условии, что строка имеет указанный формат.

public:
 static bool TryParseExact(System::String ^ input, System::String ^ format, [Runtime::InteropServices::Out] Guid % result);
public static bool TryParseExact (string input, string format, out Guid result);
public static bool TryParseExact (string? input, string? format, out Guid result);
static member TryParseExact : string * string * Guid -> bool
Public Shared Function TryParseExact (input As String, format As String, ByRef result As Guid) As Boolean

Параметры

input
String

Время в формате GUID, которое требуется преобразовать.

format
String

Один из следующих описателей, указывающих точный формат, используемый при интерпретации параметра input: "N", "D", "B", "P" или "X".

result
Guid

Структура, которая будет содержать значение после синтаксического анализа. Если метод возвращает значение true, то свойство result содержит допустимое Guid. Если метод возвращает false, result равен Empty.

Возвращаемое значение

Boolean

Значение true, если синтаксический анализ выполнен успешно; в противном случае — значение false.

Примеры

В следующем примере метод вызывается ToString(String) с каждым из поддерживаемых описателей формата для создания массива строк, представляющих один GUID. Затем они передаются TryParseExact методу, который успешно анализирует строку, которая соответствует спецификатору формата "B".

// Define an array of all format specifiers.
string[] formats = { "N", "D", "B", "P", "X" };
Guid guid = Guid.NewGuid();
// Create an array of valid Guid string representations.
var stringGuids = new string[formats.Length];
for (int ctr = 0; ctr < formats.Length; ctr++)
    stringGuids[ctr] = guid.ToString(formats[ctr]);

// Parse the strings in the array using the "B" format specifier.
foreach (var stringGuid in stringGuids)
{
    if (Guid.TryParseExact(stringGuid, "B", out var newGuid))
        Console.WriteLine($"Successfully parsed {stringGuid}");
    else
        Console.WriteLine($"Unable to parse '{stringGuid}'");
}

// The example displays output similar to the following:
//
//    Unable to parse 'c0fb150f6bf344df984a3a0611ae5e4a'
//    Unable to parse 'c0fb150f-6bf3-44df-984a-3a0611ae5e4a'
//    Successfully parsed {c0fb150f-6bf3-44df-984a-3a0611ae5e4a}
//    Unable to parse '(c0fb150f-6bf3-44df-984a-3a0611ae5e4a)'
//    Unable to parse '{0xc0fb150f,0x6bf3,0x44df,{0x98,0x4a,0x3a,0x06,0x11,0xae,0x5e,0x4a}}'
Module Example
   Public Sub Main()
      ' Define an array of all format specifiers.
      Dim formats() As String = { "N", "D", "B", "P", "X" }
      Dim guid As Guid = Guid.NewGuid()
      ' Create an array of valid Guid string representations.
      Dim stringGuids(formats.Length - 1) As String
      For ctr As Integer = 0 To formats.Length - 1
         stringGuids(ctr) = guid.ToString(formats(ctr))
      Next

      ' Try to parse the strings in the array using the "B" format specifier.
      For Each stringGuid In stringGuids
         Dim newGuid As Guid
         If Guid.TryParseExact(stringGuid, "B", newGuid) Then
            Console.WriteLine("Successfully parsed {0}", stringGuid)
         Else
            Console.WriteLine("Unable to parse '{0}'", stringGuid)
         End If   
      Next      
   End Sub
End Module
' The example displays the following output:
'    Unable to parse 'c0fb150f6bf344df984a3a0611ae5e4a'
'    Unable to parse 'c0fb150f-6bf3-44df-984a-3a0611ae5e4a'
'    Successfully parsed {c0fb150f-6bf3-44df-984a-3a0611ae5e4a}
'    Unable to parse '(c0fb150f-6bf3-44df-984a-3a0611ae5e4a)'
'    Unable to parse '{0xc0fb150f,0x6bf3,0x44df,{0x98,0x4a,0x3a,0x06,0x11,0xae,0x5e,0x4a}}'

Комментарии

Этот метод требует, чтобы строка для преобразования была в точности в формате, указанном format параметром, после удаления начальных и конечных символов пробела. Он возвращает false значение input , если имеет значение null или не имеет формат, заданный параметром format , и не создает исключение.

В следующей таблице показаны допустимые описатели формата для format параметра. "0" представляет цифру; дефисы ("-"), фигурные скобки ("{", "}") и круглые скобки ("(", ")") отображаются, как показано.

Описатель Формат input параметра
N 32 цифр:

00000000000000000000000000000000
D 32 цифр, разделенных дефисами:

00000000-0000-0000-0000-000000000000
B 32. цифры, разделенные дефисами, заключенные в фигурные скобки:

{00000000-0000-0000-0000-000000000000}
P 32. цифры, разделенные дефисами, заключенные в круглые скобки:

(00000000-0000-0000-0000-000000000000)
X Четыре шестнадцатеричных значения, заключенные в фигурные скобки, где четвертый — подмножество из восьми шестнадцатеричных значений, которое также заключено в фигурные скобки:

{0x00000000, символ 0x0000, символ 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}

См. также раздел

Применяется к