Guid.CompareTo Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vergelijkt dit exemplaar met een opgegeven object of Guid retourneert een indicatie van de relatieve waarden.
Overloads
| Name | Description |
|---|---|
| CompareTo(Guid) |
Vergelijkt dit exemplaar met een opgegeven Guid object en retourneert een indicatie van de relatieve waarden. |
| CompareTo(Object) |
Vergelijkt dit exemplaar met een opgegeven object en retourneert een indicatie van de relatieve waarden. |
CompareTo(Guid)
- Bron:
- Guid.cs
- Bron:
- Guid.cs
- Bron:
- Guid.cs
- Bron:
- Guid.cs
- Bron:
- Guid.cs
Vergelijkt dit exemplaar met een opgegeven Guid object en retourneert een indicatie van de relatieve waarden.
public:
virtual int CompareTo(Guid value);
public int CompareTo(Guid value);
abstract member CompareTo : Guid -> int
override this.CompareTo : Guid -> int
Public Function CompareTo (value As Guid) As Integer
Parameters
- value
- Guid
Een object dat moet worden vergeleken met dit exemplaar.
Retouren
Een ondertekend getal dat de relatieve waarden van dit exemplaar aangeeft en value.
| Retourwaarde | Beschrijving |
|---|---|
| Een negatief geheel getal | Dit exemplaar is kleiner dan value.
|
| Nul | Dit exemplaar is gelijk aan value.
|
| Een positief geheel getal | Dit exemplaar is groter dan value.
|
Implementeringen
Voorbeelden
In het volgende voorbeeld wordt de CompareTo(Guid) methode aangeroepen om een GUID-waarde te vergelijken met twee vergelijkbare GUID-waarden.
using System;
public class Example
{
public static void Main()
{
Guid mainGuid = Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d");
unchecked {
Guid guid2 = new Guid(0x01e75c83, (short) 0xc6f5,
0x4192,
new Byte[] { 0xb5, 0x7e, 0x74, 0x27, 0xce, 0xc5, 0x56, 0x0c} );
Guid guid3 = Guid.Parse("01e75c84-c6f5-4192-b57e-7427cec5560d");
Console.WriteLine("{0} {1:F} {2}", mainGuid,
(Comparison) mainGuid.CompareTo(guid2), guid2);
Console.WriteLine("{0} {1:F} {2}", mainGuid,
(Comparison) mainGuid.CompareTo(guid3), guid3);
}
}
private enum Comparison
{ LessThan = -1, Equals = 0, GreaterThan = 1 }
}
// The example displays the following output:
// 01e75c83-c6f5-4192-b57e-7427cec5560d GreaterThan 01e75c83-c6f5-4192-b57e-7427cec5560c
// 01e75c83-c6f5-4192-b57e-7427cec5560d LessThan 01e75c84-c6f5-4192-b57e-7427cec5560d
open System
type Comparison =
| ``Less Than`` = -1
| Equals = 0
| ``Greater Than`` = 1
let mainGuid =
Guid.Parse "01e75c83-c6f5-4192-b57e-7427cec5560d"
let guid2 = Guid(0x01e75c83, 0xc6f5s, 0x4192s, [| 0xb5uy; 0x7euy; 0x74uy; 0x27uy; 0xceuy; 0xc5uy; 0x56uy; 0x0cuy |])
let guid3 =
Guid.Parse("01e75c84-c6f5-4192-b57e-7427cec5560d")
printfn $"{mainGuid} {mainGuid.CompareTo guid2 |> enum<Comparison> :F} {guid2}"
printfn $"{mainGuid} {mainGuid.CompareTo guid3 |> enum<Comparison> :F} {guid3}"
// The example displays the following output:
// 01e75c83-c6f5-4192-b57e-7427cec5560d Greater Than 01e75c83-c6f5-4192-b57e-7427cec5560c
// 01e75c83-c6f5-4192-b57e-7427cec5560d Less Than 01e75c84-c6f5-4192-b57e-7427cec5560d
Module Example
Public Sub Main()
Dim mainGuid As Guid = Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d")
Dim guid2 As New Guid(&h01e75c83,
BitConverter.ToInt16(new Byte() { &hf5, &hc6 }, 0),
&h4192,
new Byte() { &hb5, &h7e, &h74, &h27, &hce, &hc5, &h56, &h0c} )
Dim guid3 As Guid = Guid.Parse("01e75c84-c6f5-4192-b57e-7427cec5560d")
Console.WriteLine("{0} {1:F} {2}", mainGuid,
CType(mainGuid.CompareTo(guid2), Comparison), guid2)
Console.WriteLine("{0} {1:F} {2}", mainGuid,
CType(mainGuid.CompareTo(guid3), Comparison), guid3)
End Sub
Private Enum Comparison As Integer
LessThan = -1
Equals = 0
GreaterThan = 1
End Enum
End Module
' The example displays the following output:
' 01e75c83-c6f5-4192-b57e-7427cec5560d GreaterThan 01e75c83-c6f5-4192-b57e-7427cec5560c
' 01e75c83-c6f5-4192-b57e-7427cec5560d LessThan 01e75c84-c6f5-4192-b57e-7427cec5560d
Opmerkingen
De CompareTo methode vergelijkt de GUID's alsof ze waarden aan de Guid(Int32, Int16, Int16, Byte[]) constructor zijn opgegeven, als volgt:
Hiermee worden de UInt32 waarden vergeleken en wordt een resultaat geretourneerd als ze ongelijk zijn. Als ze gelijk zijn, wordt de volgende vergelijking uitgevoerd.
Hiermee worden de eerste UInt16 waarden vergeleken en wordt een resultaat geretourneerd als ze ongelijk zijn. Als ze gelijk zijn, wordt de volgende vergelijking uitgevoerd.
Hiermee worden de tweede UInt16 waarden vergeleken en wordt een resultaat geretourneerd als ze ongelijk zijn. Als ze gelijk zijn, wordt de volgende vergelijking uitgevoerd.
Als er een byte-bytevergelijking van de volgende acht Byte waarden wordt uitgevoerd. Wanneer het het eerste ongelijke paar tegenkomt, wordt het resultaat geretourneerd. Anders wordt 0 geretourneerd om aan te geven dat de twee Guid waarden gelijk zijn.
Houd er rekening mee dat de laatste acht bytes worden weergegeven in de tekenreeksweergave van een Guid in omgekeerde volgorde, van lage byte tot hoge byte. In de tekenreeksweergave van de Guid waarde '01e75c83-c6f5-4192-b57e-7427cec5560d', zijn de laatste acht bytes 'b57e-7427cec5560d'. Met andere woorden, de laatste acht bytes worden vergeleken op basis van byte-byte van links naar rechts vanaf 0xb5.
Als twee GUID's gelijke waarden hebben voor een onderdeel, vergelijkt de methode het volgende onderdeel. Wanneer een onderdeel wordt gevonden waarvan de waarden ongelijk zijn, wordt het resultaat geretourneerd.
Deze methode implementeert de System.IComparable<T> interface en presteert iets beter dan de Guid.CompareTo methode omdat deze de value parameter niet hoeft te converteren naar een Guid waarde.
Van toepassing op
CompareTo(Object)
- Bron:
- Guid.cs
- Bron:
- Guid.cs
- Bron:
- Guid.cs
- Bron:
- Guid.cs
- Bron:
- Guid.cs
Vergelijkt dit exemplaar met een opgegeven object en retourneert een indicatie van de relatieve waarden.
public:
virtual int CompareTo(System::Object ^ value);
public int CompareTo(object? value);
public int CompareTo(object value);
abstract member CompareTo : obj -> int
override this.CompareTo : obj -> int
Public Function CompareTo (value As Object) As Integer
Parameters
- value
- Object
Een object dat moet worden vergeleken, of null.
Retouren
Een ondertekend getal dat de relatieve waarden van dit exemplaar aangeeft en value.
| Retourwaarde | Beschrijving |
|---|---|
| Een negatief geheel getal | Dit exemplaar is kleiner dan value.
|
| Nul | Dit exemplaar is gelijk aan value.
|
| Een positief geheel getal | Dit exemplaar is groter dan value, of value is null.
|
Implementeringen
Uitzonderingen
value is geen Guid.
Voorbeelden
In het volgende voorbeeld wordt het GuidAttribute kenmerk gebruikt om een GUID toe te wijzen aan een klasse. Hiermee wordt de waarde van deze GUID opgehaald door de methode aan Attribute.GetCustomAttribute te roepen en de Value eigenschap van het geretourneerde GuidAttribute object door te geven aan de Parse methode. Vervolgens wordt die GUID vergeleken met een matrix met waarden.
using System;
using System.Runtime.InteropServices;
[Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")]
public class Example
{
public static void Main()
{
GuidAttribute guidAttr = (GuidAttribute) Attribute.GetCustomAttribute(typeof(Example),
typeof(GuidAttribute));
Guid guidValue = Guid.Parse(guidAttr.Value);
Object[] values = { null , 16,
Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d"),
guidValue };
foreach (var value in values) {
try {
Console.WriteLine("{0} and {1}: {2}", guidValue,
value == null ? "null" : value,
guidValue.CompareTo(value));
}
catch (ArgumentException) {
Console.WriteLine("Cannot compare {0} and {1}", guidValue,
value == null ? "null" : value);
}
}
}
}
// The example displays the following output:
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and null: 1
// Cannot compare 936da01f-9abd-4d9d-80c7-02af85c822a8 and 16
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 01e75c83-c6f5-4192-b57e-7427cec5560d: 1
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 936da01f-9abd-4d9d-80c7-02af85c822a8: 0
open System
open System.Runtime.InteropServices
[<Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")>]
type Example = class end
let guidAttr =
Attribute.GetCustomAttribute(typeof<Example>, typeof<GuidAttribute>) :?> GuidAttribute
let guidValue =
Guid.Parse guidAttr.Value
let values: obj[] =
[| null; 16
Guid.Parse "01e75c83-c6f5-4192-b57e-7427cec5560d"
guidValue |]
for value in values do
try
printfn $"{guidValue} and %A{value}: {guidValue.CompareTo value}"
with :? ArgumentException ->
printfn $"Cannot compare {guidValue} and %A{value}"
// The example displays the following output:
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and <null>: 1
// Cannot compare 936da01f-9abd-4d9d-80c7-02af85c822a8 and 16
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 01e75c83-c6f5-4192-b57e-7427cec5560d: 1
// 936da01f-9abd-4d9d-80c7-02af85c822a8 and 936da01f-9abd-4d9d-80c7-02af85c822a8: 0
Imports System.Runtime.InteropServices
<Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")>
Module Example
Public Sub Main()
Dim guidAttr As GuidAttribute = CType(Attribute.GetCustomAttribute(GetType(Example),
GetType(GuidAttribute)), GuidAttribute)
Dim guidValue As Guid = Guid.Parse(guidAttr.Value)
Dim values() As Object = { Nothing, 16,
Guid.Parse("01e75c83-c6f5-4192-b57e-7427cec5560d"),
guidValue }
For Each value In values
Try
Console.WriteLine("{0} and {1}: {2}", guidValue,
If(value Is Nothing, "null", value),
guidValue.CompareTo(value))
Catch e As ArgumentException
Console.WriteLine("Cannot compare {0} and {1}", guidValue,
If(value Is Nothing, "null", value))
End Try
Next
End Sub
End Module
' The example displays the following output:
' 936da01f-9abd-4d9d-80c7-02af85c822a8 and null: 1
' Cannot compare 936da01f-9abd-4d9d-80c7-02af85c822a8 and 16
' 936da01f-9abd-4d9d-80c7-02af85c822a8 and 01e75c83-c6f5-4192-b57e-7427cec5560d: 1
' 936da01f-9abd-4d9d-80c7-02af85c822a8 and 936da01f-9abd-4d9d-80c7-02af85c822a8: 0
Opmerkingen
De value-parameter moet null zijn of een instantie van Guid, anders wordt er een uitzondering opgeworpen. Elk exemplaar van Guid, ongeacht de waarde, wordt beschouwd als groter dan null.
De CompareTo methode vergelijkt de GUID's alsof ze waarden aan de Guid constructor zijn opgegeven, als volgt:
Hiermee worden de Int32 waarden vergeleken en wordt een resultaat geretourneerd als ze ongelijk zijn. Als ze gelijk zijn, wordt de volgende vergelijking uitgevoerd.
Hiermee worden de eerste Int16 waarden vergeleken en wordt een resultaat geretourneerd als ze ongelijk zijn. Als ze gelijk zijn, wordt de volgende vergelijking uitgevoerd.
Hiermee worden de tweede Int16 waarden vergeleken en wordt een resultaat geretourneerd als ze ongelijk zijn. Als ze gelijk zijn, wordt de volgende vergelijking uitgevoerd.
Als er een byte-bytevergelijking van de volgende acht Byte waarden wordt uitgevoerd. Wanneer het het eerste ongelijke paar tegenkomt, wordt het resultaat geretourneerd. Anders wordt 0 geretourneerd om aan te geven dat de twee Guid waarden gelijk zijn.
Als twee GUID's gelijke waarden hebben voor een onderdeel, vergelijkt de methode het volgende onderdeel. Wanneer een onderdeel wordt gevonden waarvan de waarden ongelijk zijn, wordt het resultaat geretourneerd.
Houd er rekening mee dat de laatste acht bytes worden weergegeven in de tekenreeksweergave van een Guid in omgekeerde volgorde, van lage byte tot hoge byte. In de tekenreeksweergave van de Guid waarde '01e75c83-c6f5-4192-b57e-7427cec5560d', zijn de laatste acht bytes 'b57e-7427cec5560d'.