Guid 結構

定義

表示全域唯一識別項 (GUID)。

public value class Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, IFormattable
public value class Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, ISpanFormattable
public value class Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, IParsable<Guid>, ISpanFormattable, ISpanParsable<Guid>
public value class Guid : IComparable, IFormattable
public struct Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, IFormattable
public readonly struct Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, ISpanFormattable
public readonly struct Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, IParsable<Guid>, ISpanFormattable, ISpanParsable<Guid>
[System.Serializable]
public struct Guid : IComparable, IFormattable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, IFormattable
type Guid = struct
    interface IFormattable
type Guid = struct
    interface ISpanFormattable
    interface IFormattable
type Guid = struct
    interface IFormattable
    interface IParsable<Guid>
    interface ISpanFormattable
    interface ISpanParsable<Guid>
[<System.Serializable>]
type Guid = struct
    interface IFormattable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Guid = struct
    interface IFormattable
Public Structure Guid
Implements IComparable, IComparable(Of Guid), IEquatable(Of Guid), IFormattable
Public Structure Guid
Implements IComparable, IComparable(Of Guid), IEquatable(Of Guid), ISpanFormattable
Public Structure Guid
Implements IComparable, IComparable(Of Guid), IEquatable(Of Guid), IParsable(Of Guid), ISpanFormattable, ISpanParsable(Of Guid)
Public Structure Guid
Implements IComparable, IFormattable
繼承
屬性
實作

範例

下列範例會 System.Runtime.InteropServices.GuidAttribute 使用 類別,將 GUID 指派給介面和使用者定義類別。 它會藉由呼叫 GetCustomAttribute 方法來擷取 GUID 的值,並將它與其他兩個 GUID 進行比較,以判斷它們是否相等。

using namespace System;
using namespace System::Runtime::InteropServices;

// Guid for the interface IMyInterface.
[Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")]
public interface class IMyInterface
{
public:
   void MyMethod();
};


// Guid for the coclass MyTestClass.
[Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")]
public ref class MyTestClass: public IMyInterface
{
public:
   virtual void MyMethod(){}
};

int main()
{
   Attribute^ IMyInterfaceAttribute = Attribute::GetCustomAttribute( IMyInterface::typeid, GuidAttribute::typeid );

   // The Value property of GuidAttribute returns a string. 
   System::Console::WriteLine( String::Concat(  "IMyInterface Attribute: ", (dynamic_cast<GuidAttribute^>(IMyInterfaceAttribute))->Value ) );

   // Using the string to create a guid.
   Guid myGuid1 = Guid(dynamic_cast<GuidAttribute^>(IMyInterfaceAttribute)->Value);

   // Using a byte array to create a guid.
   Guid myGuid2 = Guid(myGuid1.ToByteArray());

   // Equals is overridden to perform a value comparison.
   if ( myGuid1.Equals( myGuid2 ) )
      System::Console::WriteLine(  "myGuid1 equals myGuid2" );
   else
      System::Console::WriteLine(  "myGuid1 not equals myGuid2" );

   // Equality operator can also be used to determine if two guids have same value.
   if ( myGuid1 == myGuid2 )
      System::Console::WriteLine(  "myGuid1 == myGuid2" );
   else
      System::Console::WriteLine(  "myGuid1 != myGuid2" );
}
// The example displays the following output:
//       IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
//       myGuid1 equals myGuid2
//       myGuid1 == myGuid2
using System;
using System.Runtime.InteropServices;

// Guid for the interface IMyInterface.
[Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")]
interface IMyInterface
{
    void MyMethod();
}

// Guid for the coclass MyTestClass.
[Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")]
public class MyTestClass : IMyInterface
{
    public void MyMethod() {}

    public static void Main( string []args )
    {
        GuidAttribute IMyInterfaceAttribute = (GuidAttribute) Attribute.GetCustomAttribute(typeof(IMyInterface), typeof(GuidAttribute));

        System.Console.WriteLine("IMyInterface Attribute: " + IMyInterfaceAttribute.Value );

        // Use the string to create a guid.
        Guid myGuid1 = new Guid(IMyInterfaceAttribute.Value );
        // Use a byte array to create a guid.
        Guid myGuid2 = new Guid(myGuid1.ToByteArray());

        if (myGuid1.Equals(myGuid2))
            System.Console.WriteLine("myGuid1 equals myGuid2");
        else
            System.Console.WriteLine("myGuid1 does not equal myGuid2" );

        // Equality operator can also be used to determine if two guids have same value.
        if ( myGuid1 == myGuid2 )
            System.Console.WriteLine( "myGuid1 == myGuid2" );
        else
            System.Console.WriteLine( "myGuid1 != myGuid2" );
    }
}
// The example displays the following output:
//       IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
//       myGuid1 equals myGuid2
//       myGuid1 == myGuid2
open System
open System.Runtime.InteropServices

// Guid for the interface IMyInterface.
[<Guid "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4">]
type IMyInterface =
    abstract MyMethod: unit -> unit

// Guid for the coclass MyTestClass.
[<Guid "936DA01F-9ABD-4d9d-80C7-02AF85C822A8">]
type MyTestClass() =
    interface IMyInterface with
        member _.MyMethod() = ()

let IMyInterfaceAttribute = 
    Attribute.GetCustomAttribute(typeof<IMyInterface>, typeof<GuidAttribute>) :?> GuidAttribute

printfn $"IMyInterface Attribute: {IMyInterfaceAttribute.Value}"

// Use the string to create a guid.
let myGuid1 = Guid IMyInterfaceAttribute.Value
// Use a byte array to create a guid.
let myGuid2 = Guid(myGuid1.ToByteArray())

if myGuid1.Equals myGuid2 then
    printfn "myGuid1 equals myGuid2"
else
    printfn "myGuid1 does not equal myGuid2"

// Equality operator can also be used to determine if two guids have same value.
if myGuid1 = myGuid2 then
    printfn "myGuid1 == myGuid2"
else
    printfn "myGuid1 <> myGuid2"

// The example displays the following output:
//       IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
//       myGuid1 equals myGuid2
//       myGuid1 == myGuid2
Imports System.Runtime.InteropServices

' Guid for the interface IMyInterface.
<Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")> _
Interface IMyInterface
    Sub MyMethod()
End Interface

' Guid for the coclass MyTestClass.
<Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")> _
Public Class MyTestClass
    Implements IMyInterface

    Public Sub MyMethod() Implements IMyInterface.MyMethod
    End Sub

    Public Shared Sub Main()
        Dim IMyInterfaceAttribute As GuidAttribute = CType(Attribute.GetCustomAttribute(GetType(IMyInterface), GetType(GuidAttribute)),
                                                           GuidAttribute)

        Console.WriteLine("IMyInterface Attribute: " + IMyInterfaceAttribute.Value)

        ' Use the string to create a guid.
        Dim myGuid1 As New Guid(IMyInterfaceAttribute.Value)
        ' Use a byte array to create a guid.
        Dim myGuid2 As New Guid(myGuid1.ToByteArray())

        If myGuid1.Equals(myGuid2) Then
            Console.WriteLine("myGuid1 equals myGuid2")
        Else
            Console.WriteLine("myGuid1 does not equal myGuid2")
        End If 

        ' The equality operator can also be used to determine if two guids have same value.
        If myGuid1.ToString() = myGuid2.ToString() Then
            Console.WriteLine("myGuid1 == myGuid2")
        Else
            Console.WriteLine("myGuid1 != myGuid2")
        End If
    End Sub
End Class
' The example displays the following output:
'       IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
'       myGuid1 equals myGuid2
'       myGuid1 == myGuid2

請注意, GuidAttribute 屬性通常用於應用程式,以將類型公開給 COM。 如果您編譯此範例,您可以在產生的元件上執行 元件註冊工具 (Regasm.exe) ,以建立登錄 (.reg) 和類型程式庫 (.tlb) 檔案。 .reg 檔案可用來在登錄中註冊 coclass,而 .tlb 檔案可以提供 COM Interop 的中繼資料。

備註

GUID 是 128 位整數 (16 個位元組) ,可在所有需要唯一識別碼的電腦和網路上使用。 這類識別碼具有非常低的重複機率。

建構函式

Guid(Byte[])

使用指定的位元組陣列,初始化 Guid 結構的新執行個體。

Guid(Int32, Int16, Int16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte)

使用指定的整數和位元組,初始化 Guid 結構的新執行個體。

Guid(Int32, Int16, Int16, Byte[])

使用指定的整數和位元組陣列,初始化 Guid 結構的新執行個體。

Guid(ReadOnlySpan<Byte>)

使用指定唯讀位元組範圍代表的值,初始化 Guid 結構的新執行個體。

Guid(String)

使用指定字串表示的值,初始化 Guid 結構的新執行個體。

Guid(UInt32, UInt16, UInt16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte)

使用指定不帶正負號的整數 (Unsigned Integer) 和位元組,初始化 Guid 結構的新執行個體。

欄位

Empty

Guid 結構的唯讀執行個體,其值全為零。

方法

CompareTo(Guid)

將這個執行個體與指定的 Guid 物件相比較,並傳回它們的相對值指示。

CompareTo(Object)

將這個執行個體與指定的物件相比較,並傳回它們的相對值指示。

Equals(Guid)

傳回值,該值表示這個執行個體和指定的 Guid 物件是否代表相同值。

Equals(Object)

傳回值,這個值指出此執行個體是否與指定的物件相等。

GetHashCode()

傳回這個執行個體的雜湊碼。

NewGuid()

初始化 Guid 結構的新執行個體。

Parse(ReadOnlySpan<Char>)

將代表 GUID 的唯讀字元範圍轉換為對等的 Guid 結構。

Parse(ReadOnlySpan<Char>, IFormatProvider)

將字元範圍剖析為值。

Parse(String)

將 GUID 的字串表示轉換為對等的 Guid 結構。

Parse(String, IFormatProvider)

將字串剖析為值。

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

將 GUID 的字元範圍表示轉換為對等的 Guid 結構,但字串必須是指定的格式。

ParseExact(String, String)

將 GUID 的字串表示轉換為對等的 Guid 結構,但字串必須是指定的格式。

ToByteArray()

傳回 16 個元素的位元組陣列,位元組陣列會包含這個執行個體的值。

ToString()

以登錄格式傳回這個執行個體的值的字串表示。

ToString(String)

根據提供的格式規範,傳回這個 Guid 執行個體的值的字串表示。

ToString(String, IFormatProvider)

根據提供的格式規範和特定文化特性格式資訊,傳回這個 Guid 類別執行個體值的字串表示。

TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>)

嘗試將目前 HUID 執行個體的格式設定為提供的字元範圍。

TryParse(ReadOnlySpan<Char>, Guid)

將包含 GUID 表示法的指定唯讀字元範圍轉換為對等的 Guid 結構。

TryParse(ReadOnlySpan<Char>, IFormatProvider, Guid)

嘗試將字元範圍剖析為值。

TryParse(String, Guid)

將 GUID 的字串表示轉換為對等的 Guid 結構。

TryParse(String, IFormatProvider, Guid)

嘗試將字串剖析成值。

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

將代表 GUID 的字元範圍轉換為對等的 Guid 結構,但字串必須是指定的格式。

TryParseExact(String, String, Guid)

將 GUID 的字串表示轉換為對等的 Guid 結構,但字串必須是指定的格式。

TryWriteBytes(Span<Byte>)

嘗試將目前的 GUID 執行個體寫入到位元組範圍。

運算子

Equality(Guid, Guid)

表示兩個指定之 Guid 物件的值是否相等。

GreaterThan(Guid, Guid)

比較兩個值,以判斷哪一個值更大。

GreaterThanOrEqual(Guid, Guid)

比較兩個值,以判斷哪一個值大於或相等。

Inequality(Guid, Guid)

表示兩個指定之 Guid 物件的值是否不相等。

LessThan(Guid, Guid)

比較兩個值,以判斷哪一個值較少。

LessThanOrEqual(Guid, Guid)

比較兩個值,以判斷哪一個值小於或相等。

明確介面實作

IComparable.CompareTo(Object)

將這個執行個體與指定的 Guid 物件相比較,並傳回它們的相對值指示。

IFormattable.ToString(String, IFormatProvider)

依據提供的格式指定名稱及文化特性 (Culture) 專用格式資訊,傳回此執行個體之值的字串表示。

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

嘗試將目前實例的值格式化為提供的字元範圍。

適用於