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 |