C# 9의 init
접근자로 불변 개체 만들기
추천 자료: ASP.NET Core 인증 및 권한 부여
C# 9에서는 init
접근자가 새롭게 추가되어 개체의 불변성을 보장하는 속성을 정의할 수 있습니다. 기존의 set
접근자와 유사하지만, init
키워드를 사용하면 속성 값은 생성자나 개체 이니셜라이저를 통해서만 설정할 수 있습니다. 개체가 생성된 이후에는 값 변경이 불가능해, 코드의 안정성과 가독성을 높이는 데 유리합니다. 아래 코드 예제를 보면 Vendor
개체의 Name
속성은 초기화 시점에만 설정할 수 있고, 이후에는 수정이 불가능한 것을 확인할 수 있습니다.
public class Vendor
{
public string Name { get; init; }
}
var vendor = new Vendor { Name = "Microsoft" }; // 초기화 시 설정 가능
// vendor.Name = "Hawaso"; // 컴파일 오류: 'init' 속성은 수정할 수 없음
init
접근자를 활용하면 개체가 생성된 이후 속성 값을 변경할 수 없기 때문에, 의도치 않은 데이터 수정으로 인한 문제를 예방할 수 있습니다. 이러한 속성은 데이터 모델 (Data Models), 데이터 전송 객체 (DTO), 레코드 타입 (Record Types) 등에서 특히 유용하며, 개체의 상태를 초깃값 그대로 유지할 수 있도록 도와줍니다. 또한, 중요한 값이 비즈니스 로직 중에 실수로 변경되는 것을 방지하여 코드의 안정성을 높입니다. 이처럼 init
접근자는 초기 설정 이후 값을 변경할 필요가 없는 경우에 유용하게 사용됩니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!