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, IComparable<Guid>, IEquatable<Guid>, IParsable<Guid>, ISpanFormattable, ISpanParsable<Guid>, IUtf8SpanFormattable
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>
public readonly struct Guid : IComparable, IComparable<Guid>, IEquatable<Guid>, IParsable<Guid>, ISpanFormattable, ISpanParsable<Guid>, IUtf8SpanFormattable
[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>
type Guid = struct
    interface IFormattable
    interface IParsable<Guid>
    interface ISpanFormattable
    interface ISpanParsable<Guid>
    interface IUtf8SpanFormattable
[<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, IComparable(Of Guid), IEquatable(Of Guid), IParsable(Of Guid), ISpanFormattable, ISpanParsable(Of Guid), IUtf8SpanFormattable
Public Structure Guid
Implements IComparable, IFormattable
Наследование
Атрибуты
Реализации

Примеры

В следующем примере класс используется System.Runtime.InteropServices.GuidAttribute для назначения GUID интерфейсу и пользовательскому классу. Он получает значение GUID путем вызова GetCustomAttribute метода и сравнивает его с двумя другими идентификаторами 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-файл можно использовать для регистрации совместного класса в реестре, а TLB-файл может предоставлять метаданные для COM-взаимодействия.

Комментарии

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(ReadOnlySpan<Byte>, Boolean)

Представляет глобальный уникальный идентификатор (GUID).

Guid(String)

Инициализирует новый экземпляр структуры Guid с использованием значения, представленного заданной строкой.

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

Инициализирует новый экземпляр структуры 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 элементов, содержащий значение данного экземпляра.

ToByteArray(Boolean)

Представляет глобальный уникальный идентификатор (GUID).

ToString()

Возвращает строковое представление значения этого экземпляра в формате реестра.

ToString(String)

Возвращает строковое представление значения этого экземпляра Guid в соответствии с заданным описателем формата.

ToString(String, IFormatProvider)

Возвращает строковое представление значения этого экземпляра класса Guid в соответствии с заданным описателем формата и сведениями об особенностях форматирования, связанных с языком и региональными параметрами.

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

Представляет глобальный уникальный идентификатор (GUID).

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

Пытается отформатировать текущий экземпляр GUID в указанный диапазон символов.

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 в диапазон байтов.

TryWriteBytes(Span<Byte>, Boolean, Int32)

Представляет глобальный уникальный идентификатор (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)

Возвращает строковое представление значения этого экземпляра в соответствии с заданным описателем формата и сведениями об особенностях форматирования, связанных с языком и региональными параметрами.

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

Пытается отформатировать значение текущего экземпляра в предоставленный диапазон символов.

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

Пытается отформатировать значение текущего экземпляра как UTF-8 в предоставленный диапазон байтов.

Применяется к