Guid.CompareTo Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Vergleicht diese Instanz mit einem angegebenen Objekt oder Guid und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück.
Überlädt
CompareTo(Guid) |
Vergleicht diese Instanz mit einem angegebenen Guid-Objekt und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück. |
CompareTo(Object) |
Vergleicht diese Instanz mit einem angegebenen Objekt und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück. |
CompareTo(Guid)
Vergleicht diese Instanz mit einem angegebenen Guid-Objekt und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück.
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
Parameter
- value
- Guid
Ein mit dieser Instanz zu vergleichendes Objekt.
Gibt zurück
Eine Zahl mit Vorzeichen, die das Verhältnis zwischen dem Wert dieser Instanz und value
angibt.
Rückgabewert | BESCHREIBUNG |
---|---|
Eine negative ganze Zahl | Diese Instanz ist kleiner als value .
|
Zero | Diese Instanz ist gleich value .
|
Eine positive ganze Zahl | Diese Instanz ist größer als value .
|
Implementiert
Beispiele
Im folgenden Beispiel wird die CompareTo(Guid) Methode aufgerufen, um einen GUID-Wert mit zwei ähnlichen GUID-Werten zu vergleichen.
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
Hinweise
Die CompareTo Methode vergleicht die GUIDs wie folgt, wenn sie werte dem Guid(Int32, Int16, Int16, Byte[]) Konstruktor bereitgestellt wurden:
Sie vergleicht die UInt32 Werte und gibt ein Ergebnis zurück, wenn sie ungleich sind. Wenn sie gleich sind, führt er den nächsten Vergleich aus.
Sie vergleicht die ersten UInt16 Werte und gibt ein Ergebnis zurück, wenn sie ungleich sind. Wenn sie gleich sind, führt er den nächsten Vergleich aus.
Sie vergleicht die zweiten UInt16 Werte und gibt ein Ergebnis zurück, wenn sie ungleich sind. Wenn sie gleich sind, führt er den nächsten Vergleich aus.
Wenn ein Byte-by-Byte-Vergleich der nächsten acht Byte Werte ausgeführt wird. Wenn das erste ungleiche Paar auftritt, gibt er das Ergebnis zurück. Andernfalls gibt es 0 zurück, um anzugeben, dass die beiden Guid Werte gleich sind.
Beachten Sie, dass die letzten acht Bytes in der Zeichenfolgendarstellung einer Guid umgekehrten Reihenfolge angezeigt werden, von einem niedrigen Byte bis zum hohen Byte. Beispiel: In der Zeichenfolgendarstellung des Guid Werts "01e75c83-c6f5-4192-b57e-7427cec560d" sind die letzten acht Bytes "b57e-7427cec560d". Mit anderen Worten, die letzten acht Bytes werden auf einer Byte-by-Byte-Basis von links nach rechts verglichen, beginnend mit 0xb5.
Wenn zwei GUIDs gleiche Werte für eine Komponente aufweisen, vergleicht die Methode die nächste Komponente. Wenn eine Komponente gefunden wird, deren Werte ungleich sind, gibt sie das Ergebnis zurück.
Diese Methode implementiert die Schnittstelle und führt etwas besser als die System.IComparable<T> Guid.CompareTo Methode aus, da der Parameter nicht in einen Guid Wert konvertiert value
werden muss.
Gilt für
CompareTo(Object)
Vergleicht diese Instanz mit einem angegebenen Objekt und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück.
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
Parameter
- value
- Object
Ein Vergleichsobjekt oder null
.
Gibt zurück
Eine Zahl mit Vorzeichen, die das Verhältnis zwischen dem Wert dieser Instanz und value
angibt.
Rückgabewert | BESCHREIBUNG |
---|---|
Eine negative ganze Zahl | Diese Instanz ist kleiner als value .
|
Zero | Diese Instanz ist gleich value .
|
Eine positive ganze Zahl | Diese Instanz ist größer als value , oder value ist null .
|
Implementiert
Ausnahmen
value
ist keine Guid.
Beispiele
Im folgenden Beispiel wird das GuidAttribute Attribut verwendet, um einer Klasse eine GUID zuzuweisen. Sie ruft den Wert dieser GUID ab, indem Sie die Attribute.GetCustomAttribute Methode aufrufen und die Value Eigenschaft des zurückgegebenen GuidAttribute Objekts an die Parse Methode übergeben. Anschließend wird die GUID mit einem Array von Werten verglichen.
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
Hinweise
Der value
Parameter muss eine Instanz von null
Guid; andernfalls wird eine Ausnahme ausgelöst. Jede Instanz von , unabhängig vom GuidWert, wird als größer null
als angesehen.
Die CompareTo Methode vergleicht die GUIDs wie folgt, wenn sie werte dem Guid Konstruktor bereitgestellt wurden:
Sie vergleicht die Int32 Werte und gibt ein Ergebnis zurück, wenn sie ungleich sind. Wenn sie gleich sind, führt er den nächsten Vergleich aus.
Sie vergleicht die ersten Int16 Werte und gibt ein Ergebnis zurück, wenn sie ungleich sind. Wenn sie gleich sind, führt er den nächsten Vergleich aus.
Sie vergleicht die zweiten Int16 Werte und gibt ein Ergebnis zurück, wenn sie ungleich sind. Wenn sie gleich sind, führt er den nächsten Vergleich aus.
Wenn ein Byte-by-Byte-Vergleich der nächsten acht Byte Werte ausgeführt wird. Wenn das erste ungleiche Paar auftritt, gibt er das Ergebnis zurück. Andernfalls gibt es 0 zurück, um anzugeben, dass die beiden Guid Werte gleich sind.
Wenn zwei GUIDs gleiche Werte für eine Komponente aufweisen, vergleicht die Methode die nächste Komponente. Wenn eine Komponente gefunden wird, deren Werte ungleich sind, gibt sie das Ergebnis zurück.
Beachten Sie, dass die letzten acht Bytes in der Zeichenfolgendarstellung einer Guid umgekehrten Reihenfolge angezeigt werden, von einem niedrigen Byte bis zum hohen Byte. Beispiel: In der Zeichenfolgendarstellung des Guid Werts "01e75c83-c6f5-4192-b57e-7427cec560d" sind die letzten acht Bytes "b57e-7427cec560d".