본문 바로가기
카테고리 없음

[코딩일기] C# 인덱스

by mania2321 2024. 6. 28.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Record
{
    public int[] temp = new int[5];         // 배열변수 선언과 크기지정
    public int this[int index]              // 인덱스는 프로퍼티 이름 대신 this를 사용. (this = 해당 클래스를 지칭하는 예약어(this.record == record))
    {                                       // 배열도 일종의 프로퍼티. 그래서 프로퍼티와 똑같이 구현해주면 됨.
        get 
        { if (index >= temp.Length)         // temp의 배열크기보다 입력한 index의 값이 더 크면, 오류가 날 수 밖에 없음.
            {
                Debug.Log("인덱스 값이 너무 큽니다.");
               
                return 0;
            }
            else 
            {
                return temp[index];
            } 
        } // temp[index]의 값을 도출하고
 
        set 
        { if (index >= temp.Length)
            {
                Debug.Log("인덱스 값이 너무 큽니다.");
            }
            else 
            {
                temp[index] = value; 
            } 
        } // temp[index]에 value 값(대입할 값)을 대입한다.
    }
}

public class Test : MonoBehaviour
{
    Record record = new Record();

    void Start()
    {
        record[5] = 5;      // [ ]안의 5는, public int this[int index]의 int index값으로 넘어감. = 5는, set { temp[index] = value } 의 value 값으로 넘어감
        record[3] = 5;

        print(record[3]);
        print(record[5]);
    }
}

댓글