System.Array 클래스

00·2024년 12월 20일

C#

목록 보기
41/149

using System;

/*
C#에서는 모든 것이 객체임. 따라서 배열도 객체이므로, 기반이 되는 형식이 있음.
.NET의 Commin Type System(CTS)에서 배열은 System.Array 클래스에 대응됨.

즉, C#에서 모든 배열은 System.Array 클래스에서 파생됨.

따라서 모든 배열은 System.Array 클래스의 멤버를 상속받아 사용할 수 있습니다.

System.Array 클래스는 배열을 위한 기본 클래스로, 배열의 크기, 차원, 정렬, 검색 등 다양한 작업을 수행하는 메서드와 프로퍼티를 제공합니다.

이 System.Array 클래스에 있는 메소드와 프로퍼티들을 사용해서,
배열 내부의 데이터를 원하는 순서대로 정렬하거나,특정 데이터를 배열 속에서 찾아내는 작업을 쉽게 할 수 있음.
예를 들어, Length 프로퍼티를 사용하여 배열의 크기를 가져오거나, Sort() 메서드를 사용하여 배열을 정렬할 수 있음.
*/

// 배열의 타입과 기본 타입을 출력
// int 기반의 배열이 System.Array 형식에서 파생됐을을 보여줌
namespace DerivedFromArray
{
class MainApp
{
static void Main(string[] args)
{
int[] array = new int[] { 10, 30, 20, 7, 1 }; // 5개의 정수 값을 가진 array 배열을 선언하고 초기화

        Console.WriteLine($"Type Of array : {array.GetType()}"); // array '배열의 타입'을 출력
                                                                 // array.GetType()은 array 객체의 타입을 나타내는 Type 객체를 반환합니다.
                                                                 // 1차원 정수형 배열이므로 System.Int32[]가 출력됨. 

        Console.WriteLine($"Base type Of array : {array.GetType().BaseType}");
        // array '배열의 기본 타입'을 출력
        // array.GetType().BaseType는 array 객체의 '기본 타입'을 나타내는 Type 객체를 반환합니다.
        // '모든 배열'은 System.Array 클래스를 상속받으므로 System.Array가 출력됩니다.


        // array.GetType()
        // GetType() 메서드: 모든 객체가 가지고 있는 메서드로, 해당 객체의 타입 정보를 나타내는, Type 객체를 반환합니다.
        // array는 배열 객체이므로, array.GetType()은 '배열의 타입 정보'를 담고 있는, Type 객체를 반환합니다.
        // 예를 들어, int[] array = new int[5]; 라면 array.GetType()은 System.Int32[] 타입을 나타내는 Type 객체를 반환합니다.

        // array.GetType().BaseType
        // BaseType 프로퍼티는 Type 객체의 프로퍼티(닷넷 문서에서 BaseType이 Type 클래스의 프로퍼티로 정의되어 있기 때문)로,
        // 해당 타입의 '기본 타입 정보'를 나타내는, Type 객체를 반환합니다.
        // C#에서 모든 배열은 System.Array 클래스를 상속받습니다.
        // 따라서 array.GetType().BaseType는 System.Array 타입을 나타내는 Type 객체를 반환합니다.
    }
}

}

/*
출력 결과

Type Of array : System.Int32[]
Base type Of array : System.Array
*/

/*
(번외)
배열마다 타입이 다를 수 있습니다.
C#에서 배열은 int[], string[], double[] 과 같이 저장하는 데이터의 종류에 따라 다른 타입을 가집니다.
int[] 배열은 정수형 데이터만 저장할 수 있고, string[] 배열은 문자열 데이터만 저장할 수 있으며,
double[] 배열은 실수형 데이터만 저장할 수 있습니다.

따라서 GetType() 메서드와 BaseType 프로퍼티를 사용하여 배열의 타입 정보를 확인하고,
배열 타입에 따라 다른 작업을 수행하는 코드를 작성할 수 있습니다.

*/

0개의 댓글