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

C# 배열에서 ToString() 메서드 사용하는 방법 – GetLowerBound() 활용 예제

ToString() 메서드는 현재 객체를 나타내는 문자열을 반환합니다. C#의 모든 객체는 Object 클래스로부터 이 메서드를 상속받기 때문에, 어떤 타입이든 호출하여 해당 객체의 문자열 표현을 얻을 수 있습니다.

배열에서 ToString() 사용 시 주의점

다만 한 가지 유의할 점이 있습니다. 배열 객체에 대해 기본 ToString()을 직접 호출하면 배열의 실제 내용이 아니라 타입 이름(예: System.String[])이 반환됩니다. 따라서 배열과 관련된 의미 있는 정보를 문자열로 얻으려면, 아래 예제처럼 Array 클래스의 다른 메서드와 함께 조합해서 사용하는 것이 좋습니다.

아래 예제에서는 ToString() 메서드를 Array 클래스의 GetLowerBound() 메서드와 함께 사용했습니다. GetLowerBound(0)는 배열의 첫 번째 차원에 대한 하한(lower bound) 인덱스를 반환하며, 여기에 ToString()을 호출해 정수 값을 문자열로 변환한 뒤 출력합니다.

예제 코드

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace lower {
    class Program {
        static void Main(string[] args) {
            Array arr = Array.CreateInstance(typeof(String), 3);
            arr.SetValue("One", 0);
            arr.SetValue("Two", 1);
            Console.WriteLine("Lower Bound {0}", arr.GetLowerBound(0).ToString());
            Console.ReadLine();
        }
    }
}

실행 결과

Lower Bound 0

코드 설명

Array.CreateInstance(typeof(String), 3)은 문자열 타입으로 크기 3인 배열을 동적으로 생성합니다. 이후 SetValue() 메서드로 각 인덱스에 값을 할당하고, GetLowerBound(0).ToString()을 통해 하한 인덱스인 0을 문자열로 변환하여 콘솔에 출력합니다.

참고: 문자열 보간으로 더 간결하게

C# 최신 버전에서는 문자열 보간(string interpolation)을 활용하면 명시적인 ToString() 호출 없이도 동일한 결과를 얻을 수 있습니다.

Console.WriteLine($"Lower Bound {arr.GetLowerBound(0)}");

문자열 보간은 컴파일러가 자동으로 ToString()을 호출해 주므로 코드가 더 간결하고 가독성이 높아집니다. 상황에 맞게 두 방식을 적절히 활용해 보세요.