본문 바로가기

워크/C# 1.0

속성(Properties) 및 인덱서(Indexers)

C#의 **속성(Properties)**와 **인덱서(Indexers)**는 객체 지향 프로그래밍에서 특별한 구문과 기능을 제공하는 멤버 유형입니다.

1. 속성(Properties)

속성은 값을 읽거나 설정하는 메소드의 일종입니다. 필드의 값을 직접 노출하지 않고 컨트롤하여 노출하는 것이 일반적입니다.

public class Person
{
    private string name;

    // 속성 예시
    public string Name
    {
        get { return name; }
        set
        {
            if (!string.IsNullOrEmpty(value))
            {
                name = value;
            }
        }
    }
}

Person person = new Person();
person.Name = "James";
Console.WriteLine(person.Name); // James 출력

2. 인덱서(Indexers)

인덱서는 객체를 배열처럼 접근할 수 있게 해줍니다. this 키워드를 사용하여 정의합니다.

public class SampleCollection
{
    private int[] arr = new int[100];

    // 인덱서 예시
    public int this[int i]
    {
        get { return arr[i]; }
        set { arr[i] = value; }
    }
}

SampleCollection collection = new SampleCollection();
collection[0] = 1;
collection[1] = 2;
Console.WriteLine(collection[0]); // 1 출력
Console.WriteLine(collection[1]); // 2 출력

이 예제에서는 SampleCollection 객체를 배열처럼 사용하여 값을 가져오고 설정할 수 있습니다. 인덱서는 배열뿐만 아니라 다양한 방식으로 컬렉션의 내부 요소에 액세스할 때 사용될 수 있습니다.

이러한 속성과 인덱서는 데이터의 읽기 및 쓰기에 대한 더 높은 수준의 제어와 객체 지향 디자인의 더 나은 캡슐화를 제공합니다.

 

'워크 > C# 1.0' 카테고리의 다른 글

위임(Delegates) 및 이벤트(Events)  (0) 2023.08.24
자동 Implemented Properties  (0) 2023.08.24
통합된 Exception Handling  (0) 2023.08.24
Garbage Collection  (0) 2023.08.24
Type-Safe 언어  (0) 2023.08.24