구조체는 클래스와 동일한 구문으로 대부분 형식을 공유하지만 클래스보다 제한적이며 다음과 같은 특징을 갖는다.
구조체는 다음과 같이 struct 키워드를 통해 정의한다.
구조체 블록 내부에 추가되는 필드, 속성, 메서드, 이벤트를 통칭하여 구조체 멤버라고 함.
클래스의 기능을 부분적으로 제한한 것이 구조체라 생각하면 이해가 쉬울 것.
▷ 구조체는 값 형식이고 클래스는 참조 형식이다.
▷ 클래스와 달리 구조체는 new 연산자를 사용하지 않고 인스턴스화 할 수 있다.
▷ 구조체는 생성자를 선언할 수 있으나 반드시 매개 변수를 사용해야 한다.
▷ 구조체는 다른 구조체 또는 클래스에서 상속될 수 없으며, 클래스의 기본 클래스가 될 수 없으며 모든 구조체는 System.Object 를 상속하는 System.ValueType에서 직접 상속한다.
▷ 구조체는 인터페스이를 구현할 수 있다.
▷ 구조체를 nullable 형식으로 사용할 수 있고 여기에 null값을 할당할 수 있다.
▷ 구조체 선언 내에서 필드는 const 또는 static으로 선언한 경우에만 초기화 할 수 있다.
▷ 구조체에서는 매개변수가 없는 생성자인 기본 생성자나 소멸자를 선언할 수 없다.
구조체는 다음과 같이 struct 키워드를 통해 정의한다.
public struct StructLogic
{
//필드, 속성, 메서드, 이벤트
}
구조체 블록 내부에 추가되는 필드, 속성, 메서드, 이벤트를 통칭하여 구조체 멤버라고 함.
클래스의 기능을 부분적으로 제한한 것이 구조체라 생각하면 이해가 쉬울 것.
'개발자의 기록 노트 > C#' 카테고리의 다른 글
[C#] C#.net에서의 시리얼통신 기초 (3) | 2017.04.18 |
---|---|
[C#] WPF Thread (2) | 2012.02.28 |
[C#] 닷넷 프레임워크 기반의 소켓 프로그래밍 (0) | 2012.02.28 |
[C#] .NET 이 아닌 native 코드로 작성된 외부 DLL 사용 방법(파라미터의 타입을 알 수 없는 경우) (0) | 2012.02.08 |
[C#] 메소드 동기화 (0) | 2011.07.21 |