CS/C# 3

Virtual / Abstract / Interface

비교구분Virtual (가상)Abstract (추상)Interface (인터페이스)한 줄 요약기능의 선택적 재정의기능의 강제적 재정의구현을 위한 명세/계약구현 여부✅ 구현된 본체(body) 있음❌ 본체(body) 없음 (선언만)❌ 본체(body) 없음재정의(Override)선택 (필요시 override)필수 (반드시 override)필수 (반드시 구현)인스턴스화가능불가능불가능다중 상속/구현단일 상속단일 상속다중 구현 가능키워드virtual / overrideabstract / overrideinterface / :(구현)관계is-a (상속 관계 강화)is-a (상속 관계)can-do (기능 중심) Virtual "기본 레시피를 제공할게, 바꾸든 말든 자유야!"virtual은 부모 클래스에 이미 완성된 기..

CS/C# 2025.10.13

C# 클래스(Class)와 구조체(Struct)의 차이점

핵심 개념 정리가장 근본적인 차이는 "어떤 타입인가?" 입니다.클래스 (Class)는 참조 타입 (Reference Type)입니다.구조체 (Struct)는 값 타입 (Value Type)입니다.이 차이점 때문에 아래와 같은 여러 파생적인 특징들이 나타납니다.구분 항목클래스 (Class)구조체 (Struct)타입 종류참조 타입 (Reference Type)값 타입 (Value Type)메모리 할당힙 (Heap) 영역에 할당스택 (Stack) 영역에 할당데이터 전달주소값(참조)을 복사데이터 전체를 복사상속다른 클래스 상속 가능상속 불가능 (인터페이스 구현은 가능)Null 할당null 할당 가능null 할당 불가능 (Nullable 제외)생성자매개변수 없는 기본 생성자 자동 지원C# 10부터 매개변수 없는 ..

CS/C# 2025.10.03

C# 박싱(Boxing) 언박싱(Unboxing)

C#에서 박싱(Boxing)과 언박싱(Unboxing)은 값 타입과 참조 타입 간 변환에 사용되는 연산입니다.(박싱/언박싱은 C#/.NET에서 정의된 개념이지만, 값 타입과 참조 타입 간 변환 자체는 다른 언어에서도 유사하게 사용됩니다.) C#의 데이터 형식C#의 데이터 형식은 크게 값 형식(Value Type)과 참조 형식(Reference Type)으로 나뉩니다.값 형식 (Value Type) : int, float, char, struct 등 스택(Stack) 메모리에 실제 데이터를 직접 저장하는 형식입니다. 빠르고 효율적이지만, 다른 곳으로 전달할 때 값을 복사합니다.참조 형식 (Reference Type) : class, string, object 등 스택(Stack)에는 데이터가 저장된 힙(H..

CS/C# 2025.10.03