Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Uri.Equals(Object) 메서드 완벽 정리 – 두 URI 비교하기

C#에서 Uri.Equals() 메서드는 두 개의 Uri 인스턴스가 서로 동일한지 비교하는 데 사용됩니다. 웹 주소를 다루는 애플리케이션에서 두 URI가 같은 리소스를 가리키는지 확인해야 할 때 유용하게 활용할 수 있습니다.

구문

Uri.Equals() 메서드의 기본 구문은 다음과 같습니다.

public override bool Equals (object comparand);

여기서 매개변수 comparand는 현재 인스턴스와 비교할 Uri 인스턴스 또는 URI 식별자를 의미합니다. 두 객체가 동일하면 true, 그렇지 않으면 false를 반환합니다.

예제 1: 동일한 URI 비교하기

먼저 두 개의 완전히 같은 URI를 생성하여 Equals() 메서드로 비교해 보겠습니다.

using System;
public class Demo {
   public static void Main(){
      Uri newURI1 = new Uri("https://www.tutorialspoint.com/index.htm");
      Console.WriteLine("URI = "+newURI1);
      Uri newURI2 = new Uri("https://www.tutorialspoint.com/index.htm");
      Console.WriteLine("URI = "+newURI2);
      if(newURI1.Equals(newURI2))
         Console.WriteLine("Both the URIs are equal!");
      else
         Console.WriteLine("Both the URIs aren't equal!");
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

URI = https://www.tutorialspoint.com/index.htm
URI = https://www.tutorialspoint.com/index.htm
Both the URIs are equal!

두 URI의 스키마, 호스트, 경로가 모두 동일하므로 Equals() 메서드는 true를 반환합니다.

예제 2: 서로 다른 URI 비교하기

이번에는 경로가 다른 두 개의 URI를 비교해 보겠습니다.

using System;
public class Demo {
   public static void Main(){
      Uri newURI1 = new Uri("https://www.tutorialspoint.com/index.htm");
      Console.WriteLine("URI = "+newURI1);
      Uri newURI2 = new Uri("https://www.tutorialspoint.com/");
      Console.WriteLine("URI = "+newURI2);
      if(newURI1.Equals(newURI2))
         Console.WriteLine("Both the URIs are equal!");
      else
         Console.WriteLine("Both the URIs aren't equal!");
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

URI = https://www.tutorialspoint.com/index.htm
URI = https://www.tutorialspoint.com/
Both the URIs aren't equal!

첫 번째 URI는 경로에 index.htm이 포함되어 있고, 두 번째 URI는 루트 경로만 가지고 있으므로 두 URI는 서로 다르다고 판단됩니다.

정리

Uri.Equals() 메서드는 단순히 문자열을 비교하는 것이 아니라, URI의 각 구성 요소(스키마, 호스트, 포트, 경로 등)를 기준으로 동등성을 판단합니다. 따라서 URL 문자열 직접 비교보다 더 안정적이고 신뢰할 수 있는 방식으로 URI를 비교할 수 있습니다.