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

C# Type.GetArrayRank() 메서드 완벽 가이드 - 배열 차원 수 구하기

C#의 Type.GetArrayRank() 메서드는 배열의 차원 수(rank)를 반환하는 메서드입니다. 다차원 배열을 다룰 때 해당 배열이 몇 차원으로 구성되어 있는지 확인해야 하는 경우에 유용하게 사용됩니다.

문법(Syntax)

public virtual int GetArrayRank ();

이 메서드는 매개변수를 받지 않으며, 배열의 차원 수를 나타내는 정수(int) 값을 반환합니다. 만약 대상 타입이 배열이 아닌 경우에는 ArgumentException 예외가 발생합니다.

예제 1: 3차원 배열의 차원 확인하기

다음은 Type.GetArrayRank() 메서드를 사용하여 3차원 int 배열의 차원 수를 구하는 예제입니다.

using System;
public class Demo {
    public static void Main(string[] args) {
        Type type = typeof(int[,]);
        int arrRank = type.GetArrayRank();
        Console.WriteLine("Array Rank = {0}", arrRank);
    }
}

출력 결과

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

Array Rank = 3

int[,]로 선언된 배열 타입은 3차원 배열이므로 GetArrayRank() 메서드가 3을 반환한 것을 확인할 수 있습니다.

예제 2: 8차원 배열과 타입 비교하기

이번에는 더 높은 차원의 배열에 적용해 보고, Equals() 메서드와 함께 두 타입이 동일한지도 비교해 보겠습니다.

using System;
public class Demo {
    public static void Main(string[] args) {
        Type type = typeof(string[,,,,,,]);
        Type type2 = typeof(string[,,,,,,]);
        int arrRank = type.GetArrayRank();
        Console.WriteLine("Array Rank = {0}", arrRank);
        Console.WriteLine("Are both types equal? {0}", type.Equals(type2));
    }
}

출력 결과

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

Array Rank = 8 Are both types equal? True

8차원 string 배열의 차원 수가 8로 올바르게 반환되었으며, 동일한 차원을 가진 두 배열 타입을 Equals()로 비교했을 때 True가 출력되는 것을 볼 수 있습니다.

정리

Type.GetArrayRank() 메서드는 리플렉션(Reflection)을 활용해 배열 타입의 차원 정보를 동적으로 확인할 때 유용합니다. 특히 제네릭 코드나 런타임에 타입 정보를 분석해야 하는 상황에서 배열의 구조를 파악하는 데 활용할 수 있습니다.