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, в эквивалентную структуру 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 в эквивалентную структуру 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}} |