Guid 構造体
グローバル一意識別子 (GUID) を表します。
この型のすべてのメンバの一覧については、Guid メンバ を参照してください。
System.Object
System.ValueType
System.Guid
<Serializable>
Public Structure Guid Implements IFormattable, IComparable
[C#]
[Serializable]
public struct Guid : IFormattable, IComparable
[C++]
[Serializable]
public __value struct Guid : public IFormattable, IComparable
[JScript] JScript では、.NET Framework の構造体を利用することができます。ただし、独自に定義することはできません。
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
GUID は、一意な識別子が必要とされるコンピュータおよびネットワーク全体で使用できる 128 ビットの整数 (16 バイト) です。このような識別子は、重複する確率がかなり低くなっています。
使用例
ユーザー定義のクラスやインターフェイスの属性として Guid オブジェクトの関連付けと読み取りを行う方法については、次のコード例を参照してください。
Imports System
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
' Run regasm on this assembly to create .reg and .tlb files.
' Reg file can be used to register this coclass in the registry.
' Tlb file will be used to do interop.
Public Sub MyMethod() Implements IMyInterface.MyMethod
End Sub
Public Shared Sub Main()
' Example addresses the following in System.Runtime.InterOpServices.GuidAttribute.
' How to specify the attribute on interface/coclass.
' Retrieve the GuidAttribute from an interface/coclass.
' Value property on GuidAttribute class.
' Example addresses the following in System.Guid.
' Constructor Guid(string).
' Constructor Guid(ByteArray).
' Equals.
' Operator ==.
' CompareTo.
Dim IMyInterfaceAttribute As Attribute = Attribute.GetCustomAttribute(GetType(IMyInterface), GetType(GuidAttribute))
' The Value property of GuidAttribute returns a string.
System.Console.WriteLine("IMyInterface Attribute: " + CType(IMyInterfaceAttribute, GuidAttribute).Value)
' Using the string to create a guid.
Dim myGuid1 As New Guid(CType(IMyInterfaceAttribute, GuidAttribute).Value)
' Using a byte array to create a guid.
Dim myGuid2 As New Guid(myGuid1.ToByteArray())
' Equals is overridden and so value comparison is done though references are different.
If myGuid1.Equals(myGuid2) Then
System.Console.WriteLine("myGuid1 equals myGuid2")
Else
System.Console.WriteLine("myGuid1 not equals myGuid2")
End If
' Equality operator can also be used to determine if two guids have same value.
If myGuid1.ToString() = myGuid2.ToString() Then
System.Console.WriteLine("myGuid1 == myGuid2")
Else
System.Console.WriteLine("myGuid1 != myGuid2")
End If
' CompareTo returns 0 if the guids have same value.
If myGuid1.CompareTo(myGuid2) = 0 Then
System.Console.WriteLine("myGuid1 compares to myGuid2")
Else
System.Console.WriteLine("myGuid1 does not compare to myGuid2")
End If
System.Console.ReadLine()
'Output:
'IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
'myGuid1 equals myGuid2
'myGuid1 == myGuid2
'myGuid1 compares to myGuid2
End Sub
End Class
[C#]
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
{
// Run regasm on this assembly to create .reg and .tlb files.
// Reg file can be used to register this coclass in the registry.
// Tlb file will be used to do interop.
public void MyMethod() {}
public static void Main( string []args )
{
// Example addresses the following in System.Runtime.InterOpServices.GuidAttribute.
// How to specify the attribute on interface/coclass.
// Retrieve the GuidAttribute from an interface/coclass.
// Value property on GuidAttribute class.
// Example addresses the following in System.Guid.
// Constructor Guid(string).
// Constructor Guid(ByteArray).
// Equals.
// Operator ==.
// CompareTo.
Attribute IMyInterfaceAttribute = Attribute.GetCustomAttribute( typeof( IMyInterface ), typeof( GuidAttribute ) );
// The Value property of GuidAttribute returns a string.
System.Console.WriteLine( "IMyInterface Attribute: " + ((GuidAttribute)IMyInterfaceAttribute).Value );
// Using the string to create a guid.
Guid myGuid1 = new Guid( ((GuidAttribute)IMyInterfaceAttribute).Value );
// Using a byte array to create a guid.
Guid myGuid2 = new Guid ( myGuid1.ToByteArray() );
// Equals is overridden and so value comparison is done though references are different.
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" );
// CompareTo returns 0 if the guids have same value.
if ( myGuid1.CompareTo( myGuid2 ) == 0 )
System.Console.WriteLine( "myGuid1 compares to myGuid2" );
else
System.Console.WriteLine( "myGuid1 does not compare to myGuid2" );
System.Console.ReadLine();
//Output.
//IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
//myGuid1 equals myGuid2
//myGuid1 == myGuid2
//myGuid1 compares to myGuid2
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Runtime::InteropServices;
// Guid for the interface IMyInterface.
[Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")]
__gc __interface IMyInterface
{
void MyMethod();
};
// Guid for the coclass MyTestClass.
[Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")]
public __gc class MyTestClass : public IMyInterface
{
// Run regasm on this assembly to create .reg and .tlb files.
// Reg file can be used to register this coclass in the registry.
// Tlb file will be used to do interop.
public:
void MyMethod() {}
};
int main()
{
// Example addresses the following in System.Runtime.InterOpServices.GuidAttribute.
// How to specify the attribute on interface/coclass.
// Retrieve the GuidAttribute from an interface/coclass.
// Value property on GuidAttribute class.
// Example addresses the following in System.Guid.
// Constructor Guid(string).
// Constructor Guid(ByteArray).
// Equals.
// Operator ==.
// CompareTo.
Attribute* IMyInterfaceAttribute = Attribute::GetCustomAttribute( __typeof( IMyInterface ), __typeof( GuidAttribute ) );
// 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 and so value comparison is done though references are different.
if ( myGuid1.Equals(__box(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 ( Guid::op_Equality ( myGuid1, myGuid2) )
System::Console::WriteLine( "myGuid1 == myGuid2" );
else
System::Console::WriteLine( "myGuid1 != myGuid2" );
// CompareTo returns 0 if the guids have same value.
if ( myGuid1.CompareTo(__box(myGuid2)) == 0 )
System::Console::WriteLine( "myGuid1 compares to myGuid2" );
else
System::Console::WriteLine( "myGuid1 does not compare to myGuid2" );
//Output.
//IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
//myGuid1 equals myGuid2
//myGuid1 == myGuid2
//myGuid1 compares to myGuid2
}
[JScript]
import System;
import System.Runtime.InteropServices;
// Guid for the interface IMyInterface.
Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4") interface IMyInterface
{
function MyMethod();
}
// Guid for the coclass MyTestClass.
public Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8") class MyTestClass implements IMyInterface
{
// Run regasm on this assembly to create .reg and .tlb files.
// Reg file can be used to register this coclass in the registry.
// Tlb file will be used to do interop.
public function MyMethod() {}
public static function Main()
{
// Example addresses the following in System.Runtime.InterOpServices.GuidAttribute.
// How to specify the attribute on interface/coclass.
// Retrieve the GuidAttribute from an interface/coclass.
// Value property on GuidAttribute class.
// Example addresses the following in System.Guid.
// Constructor Guid(string).
// Constructor Guid(ByteArray).
// Equals.
// Operator ==.
// CompareTo.
var IMyInterfaceAttribute : Attribute = Attribute.GetCustomAttribute(Type.GetType("IMyInterface"), GuidAttribute);
// The Value property of GuidAttribute returns a string.
System.Console.WriteLine( "IMyInterface Attribute: " + (GuidAttribute(IMyInterfaceAttribute)).Value );
// Using the string to create a guid.
var myGuid1 : Guid = new Guid( (GuidAttribute(IMyInterfaceAttribute)).Value );
// Using a byte array to create a guid.
var myGuid2 : Guid = new Guid ( myGuid1.ToByteArray() );
// Equals is overridden and so value comparison is done though references are different.
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" );
// CompareTo returns 0 if the guids have same value.
if ( myGuid1.CompareTo( myGuid2 ) == 0 )
System.Console.WriteLine( "myGuid1 compares to myGuid2" );
else
System.Console.WriteLine( "myGuid1 does not compare to myGuid2" );
System.Console.ReadLine();
//Output.
//IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
//myGuid1 equals myGuid2
//myGuid1 == myGuid2
//myGuid1 compares to myGuid2
}
}
MyTestClass.Main();
必要条件
名前空間: System
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: Mscorlib (Mscorlib.dll 内)