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()이 호출되므로, 명시적으로 호출하지 않아도 동일한 결과를 얻을 수 있습니다.