Implicit 썸네일형 리스트형 C# Operator Overloading으로 사용자 정의 연산 구현 연산자 오버로딩은 값 의미를 가진 타입에 자연어처럼 읽히는 연산을 부여해 가독성과 도메인 표현력을 높이는 기능입니다. 예를 들어 벡터의 덧셈, 분수의 사칙연산, 금액 합산 등에서 메서드 호출보다 직관적인 코드가 됩니다.1. 기본 문법 한눈에 보기연산자 메서드는 반드시 해당 타입 내부에 public static으로 선언하며, 반환형과 매개변수는 연산 의미에 맞게 정의합니다. 단항 연산자는 매개변수 1개, 이항 연산자는 2개를 받습니다.public readonly struct Vector2{ public double X { get; } public double Y { get; } public Vector2(double x, double y) { X = x; Y = y; } // 이항 연.. 더보기 C# 암시적/명시적 변환 연산자(implicit/explicit) 구현하기 사용자 정의 타입을 값처럼 편하게 다루고 싶다면 암시적/명시적 변환 연산자를 고려합니다. 안전한 변환은 implicit, 주의가 필요한 변환은 explicit로 제공하면 코드 가독성과 안정성이 동시에 올라갑니다.1. 언제 implicit, 언제 explicit인가요?암시적(implicit)은 정보 손실이나 예외 가능성이 사실상 없고, 개발자가 놀라지 않을 변환에만 사용합니다. 예: Guid 래퍼로의 포장, 단위의 확장 변환(좁은 개념에서 넓은 개념). 명시적(explicit)은 범위 손실, 정밀도 이슈, 실패/예외 가능성이 있거나 의미가 애매한 변환에 사용합니다. 예: 문자열 파싱, 단위 환산(반올림 포함), 내부 값 노출.2. 기본 문법과 규칙변환 연산자는 public static으로 선언하며, 두 타.. 더보기 C# 타입 변환 연산자와 Custom TypeConverter 정의하기 도메인 값 객체를 만들다 보면 안전한 타입 변환이 필요합니다. C#은 두 가지 축을 제공합니다: 컴파일러가 인식하는 사용자 정의 변환 연산자(implicit/explicit)와 프레임워크가 사용하는 System.ComponentModel.TypeConverter입니다. 이 글에서는 둘을 함께 설계하는 방법을 간단히 정리합니다.1. 언제 무엇을 쓰나요?- 변환 연산자: 코드 레벨에서 값 객체 간, 혹은 기본형과의 변환을 안전하게 강제하고자 할 때 사용합니다. 컴파일 타임에 작동합니다.- TypeConverter: 바인딩/설정/디자이너/모델 바인딩 등 프레임워크가 문자열 ↔ 타입 변환을 해야 할 때 사용합니다. 런타임 메타데이터 기반으로 작동합니다.2. 예제: Percentage 값 객체에 변환 연산자 정의.. 더보기 이전 1 다음