구조체, 클래스 둘다 사용자 정의 데이터
구조체 (struct)
Value Type이다. 그래서 스택 메모리에 할당된다.
new 연산자를 사용하지 않고 인스턴스화 할 수 있다.
상속이 불가능하다. System.ValueType을 직접 상속하고 있다.
파라미터가 있는 생성자만 선언할 수 있다. 그리고 모든 멤버 필드를 할당해주어야 한다.
멤버 필드는 미리 할당이 되지 않는다.
클래스 (Class)
Reference Type이여서 힙 메모리에 할당된다.
결론
구조체와 클래스 둘다 사용자 정의 데이터 포멧이다.
하지만, 클래스에 비해 구조체는 제약이 많다.
그래서 메인데이터를 수정하지 않는 간단하게 정의되는 데이터를 구조체로 사용해야 한다.
'개발 > C#' 카테고리의 다른 글
[C#] 선택적 매개변수 (0) | 2018.03.14 |
---|---|
[C#] string.isnullorempty vs string.isnullorwhitespace (0) | 2018.03.14 |
abstract vs virtual (0) | 2018.03.09 |
IEnumerable과 IEnumerator 인터페이스 (0) | 2018.03.02 |
static 정적멤버 / 정적클래스 (0) | 2018.03.01 |