Guid.CompareTo Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Porovná tuto instanci se zadaným objektem nebo Guid vrátí indikaci jejich relativních hodnot.
Přetížení
| Name | Description |
|---|---|
| CompareTo(Guid) |
Porovná tuto instanci se zadaným Guid objektem a vrátí indikaci jejich relativních hodnot. |
| CompareTo(Object) |
Porovná tuto instanci se zadaným objektem a vrátí indikaci jejich relativních hodnot. |
CompareTo(Guid)
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
Porovná tuto instanci se zadaným Guid objektem a vrátí indikaci jejich relativních hodnot.
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
Parametry
- value
- Guid
Objekt, který se má porovnat s touto instancí.
Návraty
Číslo se znaménkem označujícím relativní hodnoty této instance a value.
| Návratová hodnota | Popis |
|---|---|
| Záporné celé číslo | Tato instance je menší než value.
|
| Nula | Tato instance je rovna value.
|
| Kladné celé číslo | Tato instance je větší než value.
|
Implementuje
Příklady
Následující příklad volá metodu CompareTo(Guid) pro porovnání hodnoty GUID se dvěma podobnými hodnotami GUID.
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
Poznámky
Metoda CompareTo porovnává identifikátory GUID, jako by byly hodnoty poskytnuté konstruktoru Guid(Int32, Int16, Int16, Byte[]) , následujícím způsobem:
Porovná UInt32 hodnoty a vrátí výsledek, pokud jsou nerovné. Pokud jsou stejné, provede další porovnání.
Porovná první UInt16 hodnoty a vrátí výsledek, pokud jsou nerovné. Pokud jsou stejné, provede další porovnání.
Porovná druhé UInt16 hodnoty a vrátí výsledek, pokud jsou nerovné. Pokud jsou stejné, provede další porovnání.
Pokud provede porovnání bajtů po bajtech dalších osmi Byte hodnot. Když narazí na první nerovný pár, vrátí výsledek. V opačném případě vrátí hodnotu 0, která označuje, že jsou dvě Guid hodnoty stejné.
Všimněte si, že poslední osm bajtů se zobrazí v řetězcové Guid reprezentaci v obráceném pořadí od nízkého bajtu po vysoký bajt. Například v řetězcové Guid reprezentaci hodnoty "01e75c83-c6f5-4192-b57e-7427cec560d" je konečný osm bajtů "b57e-7427cec560d". Jinými slovy, poslední osm bajtů se porovnává na bajtové bajty odleva doprava počínaje 0xb5.
Pokud dvě identifikátory GUID mají stejné hodnoty pro komponentu, metoda porovná další komponentu. Když najde komponentu, jejíž hodnoty nejsou stejné, vrátí výsledek.
Tato metoda implementuje System.IComparable<T> rozhraní a provádí mírně lépe než Guid.CompareTo metoda, protože nemusí převést value parametr na Guid hodnotu.
Platí pro
CompareTo(Object)
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
- Zdroj:
- Guid.cs
Porovná tuto instanci se zadaným objektem a vrátí indikaci jejich relativních hodnot.
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
Parametry
- value
- Object
Objekt, který chcete porovnat, nebo null.
Návraty
Číslo se znaménkem označujícím relativní hodnoty této instance a value.
| Návratová hodnota | Popis |
|---|---|
| Záporné celé číslo | Tato instance je menší než value.
|
| Nula | Tato instance je rovna value.
|
| Kladné celé číslo | Tato instance je větší než valuenebo value je null.
|
Implementuje
Výjimky
valuenení .Guid
Příklady
Následující příklad používá GuidAttribute atribut k přiřazení identifikátoru GUID ke třídě. Načte hodnotu tohoto identifikátoru GUID voláním Attribute.GetCustomAttribute metody a předáním Value vlastnosti vráceného GuidAttribute objektu metodě Parse . Pak tento identifikátor GUID porovná s polem hodnot.
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
Poznámky
Parametr value musí být null nebo instance Guid, jinak je vyvolán výjimka. Jakákoli instance Guid, bez ohledu na jeho hodnotu, je považována za větší než null.
Metoda CompareTo porovnává identifikátory GUID, jako by byly hodnoty poskytnuté konstruktoru Guid , následujícím způsobem:
Porovná Int32 hodnoty a vrátí výsledek, pokud jsou nerovné. Pokud jsou stejné, provede další porovnání.
Porovná první Int16 hodnoty a vrátí výsledek, pokud jsou nerovné. Pokud jsou stejné, provede další porovnání.
Porovná druhé Int16 hodnoty a vrátí výsledek, pokud jsou nerovné. Pokud jsou stejné, provede další porovnání.
Pokud provede porovnání bajtů po bajtech dalších osmi Byte hodnot. Když narazí na první nerovný pár, vrátí výsledek. V opačném případě vrátí hodnotu 0, která označuje, že jsou dvě Guid hodnoty stejné.
Pokud dvě identifikátory GUID mají stejné hodnoty pro komponentu, metoda porovná další komponentu. Když najde komponentu, jejíž hodnoty nejsou stejné, vrátí výsledek.
Všimněte si, že poslední osm bajtů se zobrazí v řetězcové Guid reprezentaci v obráceném pořadí od nízkého bajtu po vysoký bajt. Například v řetězcové Guid reprezentaci hodnoty "01e75c83-c6f5-4192-b57e-7427cec560d" je konečný osm bajtů "b57e-7427cec560d".