[C#] 속성(feat. get, set), 인덱서

2023. 10. 25. 17:30C#

728x90
반응형

필드의 값을 취득 또는 설정한다.

필드에 중괄호가 붙고 get/set을 쓴다.

set 엑세서를 명시하지 않으면 읽기 전용, get 엑세서를 명시하지 않으면 쓰기 전용이 된다.

 

 

예시

using System;

class Aroma
{
    public double drop;
    public double volume
    {
        get
        {
            return drop;
        }
        set
        {
            drop = value;
        }
    }
}

class AromaSample
{
    public static void Main()
    {
        Aroma aroma = new Aroma();
        aroma.volume = 0.05;
        Console.WriteLine("한 방울은 " + aroma.volume + "ml 입니다.");
    }
}

 

 


 

 

인덱서란 객체 안의 배열에 엑세스 하여 클래스를 배열처럼 취급할 수 있도록 하는 구조. 속성과 같이 get,set으로 구성된다.

public int this[int i]
{
    get
    {
        return a[i];
    }
    set
    {
        a[i] = value;
    }
}

 

 

예시

using System;

class Sam
{
    private int[] suji = new int[4];

    public int this[int i]
    {
        get
        {
            return suji[i];
        }
        set
        {
            suji[i] = value;
        }
    }
}

class Sam2
{
    static void Main()
    {
        Sam sam = new Sam();
        sam[0] = 1;
        sam[1] = 2;
        sam[2] = 3;
        sam[3] = 4;
        for (int i = 0; i <= 3; i++)
        {
            Console.WriteLine(sam[i]);
        }
    }
}
728x90
반응형

'C#' 카테고리의 다른 글

[C#] 인터페이스  (0) 2023.10.27
[C#] static에 대한 정리  (0) 2023.10.26
[C#] 생성자  (1) 2023.10.25
[C#] 필드와 지역 변수의 구별  (0) 2023.10.25
[C#] 클래스의 소유와 참조 / 역참조와 상호 참조 / 자기 참조  (0) 2023.08.10