Guid.TryParseExact Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Guid) |
Преобразует диапазон символов, представляющий GUID, в эквивалентную структуру Guid, при условии, что строка имеет указанный формат. |
| TryParseExact(String, String, Guid) |
Преобразует строковое представление GUID в эквивалентную структуру Guid, при условии, что строка имеет указанный формат. |
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Guid)
- Исходный код:
- Guid.cs
- Исходный код:
- Guid.cs
- Исходный код:
- Guid.cs
- Исходный код:
- Guid.cs
Преобразует диапазон символов, представляющий 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.
Возвращаемое значение
Значение true, если синтаксический анализ выполнен успешно; в противном случае — значение false.
Применяется к
TryParseExact(String, String, Guid)
- Исходный код:
- Guid.cs
- Исходный код:
- Guid.cs
- Исходный код:
- Guid.cs
- Исходный код:
- Guid.cs
Преобразует строковое представление 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.
Возвращаемое значение
Значение 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}}'
open System
// Define an array of all format specifiers.
let formats = [| "N"; "D"; "B"; "P"; "X" |]
let guid = Guid.NewGuid()
// Create an array of valid Guid string representations.
let stringGuids =
Array.map guid.ToString formats
// Parse the strings in the array using the "B" format specifier.
for stringGuid in stringGuids do
match Guid.TryParseExact(stringGuid, "B") with
| true, newGuid ->
printfn $"Successfully parsed {stringGuid}"
| _ ->
printfn $"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}} |