1. Property
- private 필드를 캡슐화(encapsulate) 하고, 해당 필드에 대하여 제어된 접근(controlled access)을 제공하는 방법
- Property 는 일반적으로 메서드와 유사한 구문을 가지며, getter와 setter로 구성된다.
- Property 를 사용하면 캡슐화와 같은 원칙을 더 쉽게 따르고, 깨끗하고 체계적인 코드 구조를 유지하는 데 도움이 된다.
- getter / setter 을 생략하여 읽기전용/쓰기전용 프로퍼티를 정의 할 수 있다.
- getter / setter 안에서 추가적인 로직도 수행 가능하다.
public class ExampleClass
{
private int myNumber;
// Property with a getter and a setter
public int MyNumber
{
get { return myNumber; }
set
{
// Setter logic
if (value >= 0)
{
myNumber = value;
}
else
{
Console.WriteLine("Invalid value. Value must be non-negative.");
}
}
}
}
C#에서는 프로퍼티를 간결하게 표현하기 위해 자동 구현 프로퍼티(auto-implemented property) 제공
이를 사용하면 명시적인 게터와 세터를 작성하지 않아도 된다.
public class MyClass
{
// 자동 구현 프로퍼티
public int MyProperty { get; set; }
}
이렇게 사용하면 컴파일러가 자동으로 게터와 세터를 생성하여 처리한다.
2. init;
- C# 9.0에서 도입된 새로운 초기화 방법 중 하나
- 일반적으로 속성은 생성자에서 초기화되거나 클래스 내부에서만 변경이 가능한데, init을 사용하면 해당 속성은 객체가 생성된 후, 단 한번 초기화 될 수 있다.
public class MyClass
{
public int MyProperty { get; init; }
}
class Program
{
static void Main()
{
MyClass myObject = new MyClass();
// 아래와 같이 초기화 가능
myObject.MyProperty = 10;
// 아래와 같이는 불가능 (컴파일 에러 발생)
// myObject.MyProperty = 20;
}
}
불변성을 강조하고 객체의 일부를 읽기전용으로 만드는데 사용 가능하다.
'개발 > C#' 카테고리의 다른 글
[Console] 콘솔 키 입력 방법 (1) | 2024.01.05 |
---|---|
C# Class 의 기본 구성 요소 (0) | 2024.01.05 |
System.Text.Json (0) | 2024.01.05 |
[Console] Background/Foreground Color (0) | 2024.01.04 |
[Console] 창 크기 조절 (0) | 2024.01.03 |