ValueObject 썸네일형 리스트형 C# 타입 변환 연산자와 Custom TypeConverter 정의하기 도메인 값 객체를 만들다 보면 안전한 타입 변환이 필요합니다. C#은 두 가지 축을 제공합니다: 컴파일러가 인식하는 사용자 정의 변환 연산자(implicit/explicit)와 프레임워크가 사용하는 System.ComponentModel.TypeConverter입니다. 이 글에서는 둘을 함께 설계하는 방법을 간단히 정리합니다.1. 언제 무엇을 쓰나요?- 변환 연산자: 코드 레벨에서 값 객체 간, 혹은 기본형과의 변환을 안전하게 강제하고자 할 때 사용합니다. 컴파일 타임에 작동합니다.- TypeConverter: 바인딩/설정/디자이너/모델 바인딩 등 프레임워크가 문자열 ↔ 타입 변환을 해야 할 때 사용합니다. 런타임 메타데이터 기반으로 작동합니다.2. 예제: Percentage 값 객체에 변환 연산자 정의.. 더보기 C# 레코드 타입 (Record) 1. 개념 설명레코드는 기본적으로 참조형이지만 값 기반 동등성(value-based equality)을 제공하는 타입입니다. 생성자 매개변수나 init 접근자로 불변 모델을 쉽게 만들고, 자동으로 Equals/GetHashCode/ToString이 생성됩니다. 또한 with 식으로 일부 속성만 바꾼 복사본을 만들 수 있어 DTO, 상태 스냅샷에 적합합니다. 필요 시 값 형식인 record struct도 사용할 수 있습니다.2. 코드 예제다음 예제는 레코드의 값 비교, with 복사, 분해를 보여줍니다. 콘솔에 결과가 순서대로 출력됩니다.public record Person(string Name, int Age);var p1 = new Person("Kim", 30);var p2 = new Person(".. 더보기 이전 1 다음