Guid.CompareTo Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu örneği belirtilen bir nesneyle karşılaştırır veya Guid göreli değerlerinin bir göstergesini döndürür.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| CompareTo(Guid) |
Bu örneği belirtilen Guid bir nesneyle karşılaştırır ve göreli değerlerinin bir göstergesini döndürür. |
| CompareTo(Object) |
Bu örneği belirtilen bir nesneyle karşılaştırır ve göreli değerlerinin bir göstergesini döndürür. |
CompareTo(Guid)
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
Bu örneği belirtilen Guid bir nesneyle karşılaştırır ve göreli değerlerinin bir göstergesini döndürür.
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
Parametreler
- value
- Guid
Bu örnekle karşılaştıracak bir nesne.
Döndürülenler
Ve bu örneğin valuegöreli değerlerini gösteren imzalı bir sayı.
| Dönüş değeri | Açıklama |
|---|---|
| Negatif tamsayı | Bu örnek değerinden valueküçüktür.
|
| Sıfır | Bu örnek eşittir value.
|
| Pozitif bir tamsayı | Bu örnek değerinden valuebüyüktür.
|
Uygulamalar
Örnekler
Aşağıdaki örnek, bir GUID değerini benzer iki GUID değeriyle karşılaştırmak için yöntemini çağırır CompareTo(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
Açıklamalar
yöntemi GUID'leri CompareTo oluşturucuya Guid(Int32, Int16, Int16, Byte[]) sağlanan değerlermiş gibi aşağıdaki gibi karşılaştırır:
Değerleri karşılaştırır UInt32 ve eşit olmayan bir sonuç döndürür. Eşitse, bir sonraki karşılaştırmayı gerçekleştirir.
İlk UInt16 değerleri karşılaştırır ve eşit olmayan bir sonuç döndürür. Eşitse, bir sonraki karşılaştırmayı gerçekleştirir.
İkinci UInt16 değerleri karşılaştırır ve eşit olmayan bir sonuç döndürür. Eşitse, bir sonraki karşılaştırmayı gerçekleştirir.
Sonraki sekiz Byte değerin bayt bayt karşılaştırması yaparsa. İlk eşit olmayan çiftle karşılaştığında sonucu döndürür. Aksi takdirde, iki Guid değerin eşit olduğunu belirtmek için 0 döndürür.
Son sekiz bayt değerinin, düşük bayttan yüksek bayta kadar ters sırada bir Guid dize gösteriminde göründüğünü unutmayın. Örneğin, "01e75c83-c6f5-4192-b57e-7427cec5560d" değerinin dize gösteriminde Guid , son sekiz bayt "b57e-7427cec5560d" şeklindedir. Başka bir deyişle, son sekiz bayt, 0xb5 ile başlayarak soldan sağa bayt bazında karşılaştırılır.
İki GUID bir bileşen için eşit değerlere sahipse, yöntemi bir sonraki bileşeni karşılaştırır. Değerleri eşit olmayan bir bileşen bulduğunda, sonucu döndürür.
Bu yöntem arabirimini uygular ve parametresini System.IComparable<T> bir değere dönüştürmesi gerekmediğinden yönteminden Guid.CompareTovalue biraz daha iyi performans Guid gösterir.
Şunlara uygulanır
CompareTo(Object)
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
- Kaynak:
- Guid.cs
Bu örneği belirtilen bir nesneyle karşılaştırır ve göreli değerlerinin bir göstergesini döndürür.
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
Parametreler
- value
- Object
Karşılaştıracak bir nesne veya null.
Döndürülenler
Ve bu örneğin valuegöreli değerlerini gösteren imzalı bir sayı.
| Dönüş değeri | Açıklama |
|---|---|
| Negatif tamsayı | Bu örnek değerinden valueküçüktür.
|
| Sıfır | Bu örnek eşittir value.
|
| Pozitif bir tamsayı | Bu örnek veya valuenulldeğerinden valuebüyüktür.
|
Uygulamalar
Özel durumlar
value bir Guiddeğildir.
Örnekler
Aşağıdaki örnek, bir sınıfa GUID atamak için özniteliğini kullanır GuidAttribute . Yöntemini çağırarak Attribute.GetCustomAttribute ve döndürülen GuidAttribute nesnenin Parse özelliğini yöntemine geçirerek Value bu GUID değerini alır. Ardından guid değerini bir değer dizisiyle karşılaştırır.
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
Açıklamalar
value parametresi null veya Guidörneği olmalıdır; aksi takdirde, bir özel durum oluşturulur.
Guidherhangi bir örneği, değerinden bağımsız olarak nulldeğerinden büyük kabul edilir.
yöntemi GUID'leri CompareTo oluşturucuya Guid sağlanan değerlermiş gibi aşağıdaki gibi karşılaştırır:
Değerleri karşılaştırır Int32 ve eşit olmayan bir sonuç döndürür. Eşitse, bir sonraki karşılaştırmayı gerçekleştirir.
İlk Int16 değerleri karşılaştırır ve eşit olmayan bir sonuç döndürür. Eşitse, bir sonraki karşılaştırmayı gerçekleştirir.
İkinci Int16 değerleri karşılaştırır ve eşit olmayan bir sonuç döndürür. Eşitse, bir sonraki karşılaştırmayı gerçekleştirir.
Sonraki sekiz Byte değerin bayt bayt karşılaştırması yaparsa. İlk eşit olmayan çiftle karşılaştığında sonucu döndürür. Aksi takdirde, iki Guid değerin eşit olduğunu belirtmek için 0 döndürür.
İki GUID bir bileşen için eşit değerlere sahipse, yöntemi bir sonraki bileşeni karşılaştırır. Değerleri eşit olmayan bir bileşen bulduğunda, sonucu döndürür.
Son sekiz bayt değerinin, düşük bayttan yüksek bayta kadar ters sırada bir Guid dize gösteriminde göründüğünü unutmayın. Örneğin, "01e75c83-c6f5-4192-b57e-7427cec5560d" değerinin dize gösteriminde Guid , son sekiz bayt "b57e-7427cec5560d" şeklindedir.