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)을 활용해 배열 타입의 차원 정보를 동적으로 확인할 때 유용합니다. 특히 제네릭 코드나 런타임에 타입 정보를 분석해야 하는 상황에서 배열의 구조를 파악하는 데 활용할 수 있습니다.