Guid.CompareTo 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 인스턴스를 지정된 개체나 Guid와 비교하여 상대 값의 표시를 반환합니다.
오버로드
CompareTo(Guid) |
이 인스턴스를 지정된 Guid 개체와 비교하여 상대 값의 표시를 반환합니다. |
CompareTo(Object) |
이 인스턴스를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다. |
CompareTo(Guid)
- Source:
- Guid.cs
- Source:
- Guid.cs
- Source:
- Guid.cs
이 인스턴스를 지정된 Guid 개체와 비교하여 상대 값의 표시를 반환합니다.
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
매개 변수
- value
- Guid
이 인스턴스와 비교할 개체입니다.
반환
이 인스턴스와 value
의 상대 값을 나타내는 부호 있는 숫자입니다.
반환 값 | 설명 |
---|---|
음의 정수 | 이 인스턴스는 value 보다 작습니다.
|
0 | 이 인스턴스가 value 과 같은 경우
|
양의 정수 | 이 인스턴스는 value 보다 큽니다.
|
구현
예제
다음 예제에서는 메서드를 CompareTo(Guid) 호출하여 GUID 값을 두 개의 유사한 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
설명
메서드는 CompareTo GUID를 다음과 같이 생성자에 제공된 Guid(Int32, Int16, Int16, Byte[]) 값인 것처럼 비교합니다.
값을 비교 UInt32 하고 같지 않은 경우 결과를 반환합니다. 같으면 다음 비교를 수행합니다.
첫 번째 UInt16 값을 비교하고 같지 않은 경우 결과를 반환합니다. 같으면 다음 비교를 수행합니다.
두 번째 UInt16 값을 비교하고 같지 않은 경우 결과를 반환합니다. 같으면 다음 비교를 수행합니다.
다음 8 Byte 개 값의 바이트 바이트 비교를 수행하는 경우 첫 번째 같지 않은 쌍이 발견되면 결과를 반환합니다. 그렇지 않으면 0을 반환하여 두 Guid 값이 같음을 나타냅니다.
마지막 8바이트는 낮은 바이트에서 높은 바이트까지 의 Guid 문자열 표현에 역순으로 표시됩니다. 예를 들어 값 "01e75c83-c6f5-4192-b57e-7427cec5560d"의 문자열 표현 Guid 에서 마지막 8바이트는 "b57e-7427cec5560d"입니다. 즉, 마지막 8바이트는 0xb5 시작하여 왼쪽에서 오른쪽으로 바이트 단위로 비교됩니다.
두 GUID의 구성 요소 값이 같은 경우 메서드는 다음 구성 요소를 비교합니다. 값이 같지 않은 구성 요소를 찾으면 결과가 반환됩니다.
이 메서드는 인터페이스를 System.IComparable<T> 구현하고 매개 변수 Guid 를 값으로 변환 value
할 필요가 없으므로 메서드보다 Guid.CompareTo 약간 더 잘 수행됩니다.
적용 대상
CompareTo(Object)
- Source:
- Guid.cs
- Source:
- Guid.cs
- Source:
- Guid.cs
이 인스턴스를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다.
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
매개 변수
- value
- Object
비교할 개체 또는 null
입니다.
반환
이 인스턴스와 value
의 상대 값을 나타내는 부호 있는 숫자입니다.
반환 값 | 설명 |
---|---|
음의 정수 | 이 인스턴스는 value 보다 작습니다.
|
0 | 이 인스턴스가 value 과 같은 경우
|
양의 정수 | 이 인스턴스는 value 보다 크거나 value 가 null 입니다.
|
구현
예외
value
이(가) Guid가 아닌 경우
예제
다음 예제에서는 특성을 사용하여 GuidAttribute 클래스에 GUID를 할당합니다. 메서드를 호출 Attribute.GetCustomAttribute 하고 반환 GuidAttribute 된 개체의 속성을 메서드에 전달 Value 하여 이 GUID의 값을 검색합니다Parse. 그런 다음 해당 GUID를 값 배열과 비교합니다.
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
설명
매개 변수는 value
또는 인스턴스Guid여야 null
합니다. 그렇지 않으면 예외가 throw됩니다. 의 모든 인스턴스는 Guid값에 관계없이 보다 null
큰 것으로 간주됩니다.
메서드는 CompareTo GUID를 다음과 같이 생성자에 제공된 Guid 값인 것처럼 비교합니다.
값을 비교 Int32 하고 같지 않은 경우 결과를 반환합니다. 같으면 다음 비교를 수행합니다.
첫 번째 Int16 값을 비교하고 같지 않은 경우 결과를 반환합니다. 같으면 다음 비교를 수행합니다.
두 번째 Int16 값을 비교하고 같지 않은 경우 결과를 반환합니다. 같으면 다음 비교를 수행합니다.
다음 8 Byte 개 값의 바이트 바이트 비교를 수행하는 경우 첫 번째 같지 않은 쌍이 발견되면 결과를 반환합니다. 그렇지 않으면 0을 반환하여 두 Guid 값이 같음을 나타냅니다.
두 GUID의 구성 요소 값이 같은 경우 메서드는 다음 구성 요소를 비교합니다. 값이 같지 않은 구성 요소를 찾으면 결과가 반환됩니다.
마지막 8바이트는 낮은 바이트에서 높은 바이트까지 의 Guid 문자열 표현에 역순으로 표시됩니다. 예를 들어 값 "01e75c83-c6f5-4192-b57e-7427cec5560d"의 문자열 표현 Guid 에서 마지막 8바이트는 "b57e-7427cec5560d"입니다.
적용 대상
.NET