Guid.TryParseExact 方法

定義

多載

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

將代表 GUID 的字元範圍轉換為對等的 Guid 結構,但字串必須是指定的格式。Converts span of characters representing the GUID to the equivalent Guid structure, provided that the string is in the specified format.

TryParseExact(String, String, Guid)

將 GUID 的字串表示轉換為對等的 Guid 結構,但字串必須是指定的格式。Converts the string representation of a GUID to the equivalent Guid structure, provided that the string is in the specified format.

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

將代表 GUID 的字元範圍轉換為對等的 Guid 結構,但字串必須是指定的格式。Converts span of characters representing the GUID to the equivalent Guid structure, provided that the string is in the specified format.

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 之位元組的唯讀範圍。A read-only span containing the characters representing the GUID to convert.

format
ReadOnlySpan<Char>

唯讀範圍,包含代表下列其中一個指定名稱的字元,明確指出在解譯 input 時要使用的格式:"N"、"D"、"B"、"P" 或 "X"。A read-only span containing a character representing one of the following specifiers that indicates the exact format to use when interpreting input: "N", "D", "B", "P", or "X".

result
Guid

包含已剖析之值的結構。The structure to contain the parsed value. 如果方法傳回 true,則 result 包含有效的 GuidIf the method returns true, result contains a valid Guid. 如果方法會傳回 false,則 result 等於 EmptyIf the method returns false, result equals Empty.

傳回

Boolean

如果剖析作業成功則為 true,否則為 falsetrue if the parse operation was successful; otherwise, false.

TryParseExact(String, String, Guid)

將 GUID 的字串表示轉換為對等的 Guid 結構,但字串必須是指定的格式。Converts the string representation of a GUID to the equivalent Guid structure, provided that the string is in the specified format.

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);
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。The GUID to convert.

format
String

下列其中一個指定名稱,明確指出在解譯 input 時要使用的格式:"N"、"D"、"B"、"P" 或 "X"。One of the following specifiers that indicates the exact format to use when interpreting input: "N", "D", "B", "P", or "X".

result
Guid

要包含所剖析之值的結構。The structure that will contain the parsed value. 如果方法傳回 true,則 result 包含有效的 GuidIf the method returns true, result contains a valid Guid. 如果方法會傳回 false,則 result 等於 EmptyIf the method returns false, result equals Empty.

傳回

Boolean

如果剖析作業成功則為 true,否則為 falsetrue if the parse operation was successful; otherwise, false.

範例

下列範例會使用每個支援的格式規範來呼叫 ToString(String) 方法,以產生代表單一 GUID 的字串陣列。The following example calls the ToString(String) method with each of the supported format specifiers to generate an array of strings that represent a single GUID. 這些會接著傳遞至 TryParseExact 方法,這會成功剖析符合 "B" 格式規範的字串。These are then passed to the TryParseExact method, which successfully parses the string that conforms to the "B" format specifier.

// 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 參數所指定的格式完全相同,然後再移除開頭和尾端空白字元。This method requires the string to convert to be exactly in the format specified by the format parameter, after leading and trailing white-space characters are removed. 如果 input null 或不是 format指定的格式,則會傳回 false,而且不會擲回例外狀況。It returns false if input is null or is not in the format specified by format, and doesn't throw an exception.

下表顯示 format 參數的已接受格式規範。The following table shows the accepted format specifiers for the format parameter. "0" 代表數位;連字號("-")、大括弧("{"、"}")和括弧("(",")")會如下所示。"0" represents a digit; hyphens ("-"), braces ("{", "}"), and parentheses ("(", ")") appear as shown.

指定名稱Specifier input 參數的格式Format of the input parameter
NN 32位數:32 digits:

0000000000000000000000000000000000000000000000000000000000000000
DD 32以連字號分隔的數位:32 digits separated by hyphens:

00000000-0000-0000-0000-00000000000000000000-0000-0000-0000-000000000000
BB 以連字號分隔的32位數,以大括弧括住:32 digits separated by hyphens, enclosed in braces:

{00000000-0000-0000-0000-000000000000}
PP 以連字號分隔的32位數,以括弧括住:32 digits separated by hyphens, enclosed in parentheses:

(00000000-0000-0000-0000-000000000000)(00000000-0000-0000-0000-000000000000)
XX 四個以大括弧括住的十六進位值,其中第四個值是八個十六進位值的子集,也是以大括弧括住:Four hexadecimal values enclosed in braces, where the fourth value is a subset of eight hexadecimal values that is also enclosed in braces:

{0x00000000、0x0000、0x0000、{0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00}}{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}

另請參閱

適用於