Guid.CompareTo Method (Object)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Compares this instance to a specified object and returns an indication of their relative values.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System.Object
An object to compare, or Nothing.
Return Value
Type: System.Int32A signed number indicating the relative values of this instance and value.
Value | Description |
|---|---|
A negative integer | This instance is less than value. |
Zero | This instance is equal to value. |
A positive integer | This instance is greater than value. -or- value is Nothing. |
Implements
IComparable.CompareTo(Object)| Exception | Condition |
|---|---|
| ArgumentException | value is not a Guid. |
The following code sample demonstrates how to attach and read a Guid object as an attribute on a user-defined class or interface.
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 Example 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 Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) ' 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. outputBlock.Text += String.Format("IMyInterface Attribute: " + CType(IMyInterfaceAttribute, GuidAttribute).Value) & vbCrLf ' 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 outputBlock.Text &= "myGuid1 equals myGuid2" & vbCrLf Else outputBlock.Text &= "myGuid1 not equals myGuid2" & vbCrLf End If ' Equality operator can also be used to determine if two guids have same value. If myGuid1.ToString() = myGuid2.ToString() Then outputBlock.Text &= "myGuid1 == myGuid2" & vbCrLf Else outputBlock.Text &= "myGuid1 != myGuid2" & vbCrLf End If ' CompareTo returns 0 if the guids have same value. If myGuid1.CompareTo(myGuid2) = 0 Then outputBlock.Text &= "myGuid1 compares to myGuid2" & vbCrLf Else outputBlock.Text &= "myGuid1 does not compare to myGuid2" & vbCrLf 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