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

C# Uri.ToString() 메서드 완벽 정리 – 구문, 예제, 실행 결과까지

C#의 Uri.ToString() 메서드는 지정된 Uri 인스턴스에 대한 정규화된(canonical) 문자열 표현을 반환하는 데 사용됩니다. 이 메서드를 활용하면 Uri 객체가 담고 있는 전체 URI 정보를 사람이 읽기 쉬운 문자열 형태로 손쉽게 얻을 수 있습니다.

구문

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

public override string ToString();

이 메서드는 매개변수를 받지 않으며, 해당 Uri 인스턴스의 문자열 표현을 담은 string 값을 반환합니다.

예제

이제 Uri.ToString() 메서드를 실제로 구현한 예제를 살펴보겠습니다.

using System;
public class Demo {
   public static void Main(){
      Uri newURI1 = new Uri("https://www.tutorialspoint.com/");
      Console.WriteLine("URI = "+newURI1);
      Console.WriteLine("문자열 표현 = "+newURI1.ToString());
      Uri newURI2 = new Uri("https://www.tutorialspoint.com/jquery.htm#abcd");
      Console.WriteLine("\nURI = "+newURI2);
      Console.WriteLine("문자열 표현 = "+newURI2.ToString());
      if(newURI1.Equals(newURI2))
         Console.WriteLine("\n두 URI는 동일합니다!");
      else
         Console.WriteLine("\n두 URI는 동일하지 않습니다!");
      Uri res = newURI1.MakeRelativeUri(newURI2);
      Console.WriteLine("상대 URI = "+res);
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

URI = https://www.tutorialspoint.com/
문자열 표현 = https://www.tutorialspoint.com/
URI = https://www.tutorialspoint.com/jquery.htm#abcd
문자열 표현 = https://www.tutorialspoint.com/jquery.htm#abcd
두 URI는 동일하지 않습니다!
상대 URI = jquery.htm#abcd

코드 설명

위 예제에서는 두 개의 Uri 객체를 생성했습니다. 첫 번째 URI는 기본 도메인 주소이며, 두 번째 URI는 페이지 경로와 프래그먼트(#abcd)까지 포함하고 있습니다. ToString() 메서드를 호출하면 각 Uri 인스턴스의 전체 문자열이 그대로 출력되는 것을 볼 수 있습니다.

이어서 Equals() 메서드로 두 URI를 비교한 결과, 경로와 프래그먼트가 다르기 때문에 서로 동일하지 않다는 메시지가 출력됩니다. 마지막으로 MakeRelativeUri() 메서드를 사용해 첫 번째 URI를 기준으로 하는 상대 URI인 "jquery.htm#abcd"를 얻는 과정도 함께 확인할 수 있습니다.

정리

Uri.ToString()은 Uri 객체를 문자열로 변환하는 가장 기본적인 방법으로, 로깅, 디버깅, 화면 출력 등 다양한 상황에서 유용하게 활용됩니다. 참고로 콘솔에 Uri 객체를 직접 출력할 때도 내부적으로 ToString()이 호출되므로, 명시적으로 호출하지 않아도 동일한 결과를 얻을 수 있습니다.