Guid.ParseExact 方法

定义

重载

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

如果字符串采用指定格式,则将 GUID 的字符范围表示形式转换为等效的 Guid 结构。Converts the character span representation of a GUID to the equivalent Guid structure, provided that the string is in the specified format.

ParseExact(String, String)

将 GUID 的字符串表示形式转换为等效的 Guid 结构,前提是该字符串采用的是指定格式。Converts the string representation of a GUID to the equivalent Guid structure, provided that the string is in the specified format.

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

如果字符串采用指定格式,则将 GUID 的字符范围表示形式转换为等效的 Guid 结构。Converts the character span representation of a GUID to the equivalent Guid structure, provided that the string is in the specified format.

public:
 static Guid ParseExact(ReadOnlySpan<char> input, ReadOnlySpan<char> format);
public static Guid ParseExact (ReadOnlySpan<char> input, ReadOnlySpan<char> format);
static member ParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> -> Guid
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char)) As Guid

参数

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 of characters representing one of the following specifiers that indicates the exact format to use when interpreting input: "N", "D", "B", "P", or "X".

返回

Guid

一个包含已分析的值的结构。A structure that contains the value that was parsed.

注解

ParseExact format 删除前导和尾随空白字符后,该方法需要只读字符跨距才能转换为完全按照参数指定的格式。The ParseExact method requires the read-only character span to convert to be exactly in the format specified by the format parameter, after leading and trailing white-space characters are removed. 下表显示参数的接受格式说明符 formatThe following table shows the accepted format specifiers for the format parameter. "0" 表示一个数字;连字符 ( "-" ) 、大括号 ( "{"、"}" ) 和括号 ( " ("、") " ) 显示。"0" represents a digit; hyphens ("-"), braces ("{", "}"), and parentheses ("(", ")") appear as shown.

说明符Specifier 参数的格式 inputFormat 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}}

ParseExact(String, String)

将 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 Guid ParseExact(System::String ^ input, System::String ^ format);
public static Guid ParseExact (string input, string format);
static member ParseExact : string * string -> Guid
Public Shared Function ParseExact (input As String, format As String) As Guid

参数

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".

返回

Guid

一个包含已分析的值的结构。A structure that contains the value that was parsed.

例外

inputformatnullinput or format is null.

input 未采用 format 指定的格式。input is not in the format specified by format.

示例

下面的示例 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. 然后,将这些方法传递给 ParseExact 方法,该方法仅成功分析符合 "B" 格式说明符的字符串。These are then passed to the ParseExact method, which successfully parses only 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)
{
    try
    {
        Guid newGuid = Guid.ParseExact(stringGuid, "B");
        Console.WriteLine($"Successfully parsed {stringGuid}");
    }
    catch (ArgumentNullException)
    {
        Console.WriteLine("The string to be parsed is null.");
    }
    catch (FormatException)
    {
        Console.WriteLine($"Bad Format: {stringGuid}");
    }
}

// The example displays output similar to the following:
//
//    Bad Format: eb5c8c7d187a44e68afb81e854c39457
//    Bad Format: eb5c8c7d-187a-44e6-8afb-81e854c39457
//    Successfully parsed {eb5c8c7d-187a-44e6-8afb-81e854c39457}
//    Bad Format: (eb5c8c7d-187a-44e6-8afb-81e854c39457)
//    Bad Format: {0xeb5c8c7d,0x187a,0x44e6,{0x8a,0xfb,0x81,0xe8,0x54,0xc3,0x94,0x57}}
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

      ' Parse the strings in the array using the "B" format specifier.
      For Each stringGuid In stringGuids
         Try
            Dim newGuid As Guid = Guid.ParseExact(stringGuid, "B")
            Console.WriteLine("Successfully parsed {0}", stringGuid)
         Catch e As ArgumentNullException
            Console.WriteLine("The string to be parsed is null.")
         Catch e As FormatException
            Console.WriteLine("Bad Format: {0}", stringGuid)
         End Try   
      Next      
   End Sub
End Module
' The example displays the following output:
'    Bad Format: 3351d3f0006747089ff928b5179b2051
'    Bad Format: 3351d3f0-0067-4708-9ff9-28b5179b2051
'    Successfully parsed {3351d3f0-0067-4708-9ff9-28b5179b2051}
'    Bad Format: (3351d3f0-0067-4708-9ff9-28b5179b2051)
'    Bad Format: {0x3351d3f0,0x0067,0x4708,{0x9f,0xf9,0x28,0xb5,0x17,0x9b,0x20,0x51}}

注解

ParseExact方法要求在 format 删除前导和尾随空白字符后,将字符串转换为完全按照参数指定的格式。The ParseExact 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. 下表显示参数的接受格式说明符 formatThe following table shows the accepted format specifiers for the format parameter. "0" 表示一个数字;连字符 ( "-" ) 、大括号 ( "{"、"}" ) 和括号 ( " ("、") " ) 显示。"0" represents a digit; hyphens ("-"), braces ("{", "}"), and parentheses ("(", ")") appear as shown.

说明符Specifier 参数的格式 inputFormat 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}}

另请参阅

适用于