구조체, 클래스 둘다 사용자 정의 데이터

구조체 (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

+ Recent posts