본문 바로가기

프로그래밍2

[C#] 인터페이스 (Interface) 인터페이스 - 인터페이스는 사용자 정의 자료형이며 메서드, 이벤트, 인덱서, 프로퍼티만을 가질 있지만 직접 구현하지 않고 단지 정의만을 갖는다. 그래서 인터페이스는 추상 멤버로만 구성된 추상 클래스와 개념적으로 유사하며, 클래스는 접근 제한 한정자로 수식하지 않으면 기본적으로 private로 선언되지만, 인터페이스는 접근 제한 한정자를 사용할 수 없고 모든 것이 public으로 선언된다. 또한 인스턴스도 만들 수 없으며, 클래스가 인터페이스를 가지는 경우 해당 인터페이스의 모든 멤버에 대한 구현을 제공해야 한다. 인터페이스 정의 인터페이스는 C# 키워드 interface를 사용하여 정의한다. 인터페이스 정의 시에는 내부 멤버들에 대해 public과 같은 접근 제한자를 사용하지 않는다. 인터페이스 구현 C.. 2019. 5. 18.
[C#] 박싱과 언박싱 박싱(Boxing) - 값 형식을 참조 형식으로 변환하는 것을 말하며 스택에 있는 데이터가 힙으로 복사 언박싱(Unboxing) - 참조 형식을 값 형식으로 변환하는 것을 말하며 힙에 있는 데이터가 스택에 복사 값 형식의 자료는 스택 메모리 영역에, 참조 형식의 자료는 힙 메모리 영역에 할당이 된다. object 형식은 참조 형식 이기 때문에 힙에 데이터를 할당. int와 double 은 값 형식이기 때문에 스택에 데이터를 할당하지만 값 형식의 데이터 형식도 object 형식 객체에 담을 수 있다. 이처럼 object 형식에 값 형식 데이터를 할당하려고 하면 object 형식은 자동으로 박싱을 수행해서 데이터를 힙에 할당한다. 박싱 언박싱 a는 20이 박싱 되어 저장되어 있는 힙을 참조하고 있다. b는 .. 2019. 4. 28.