Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 클래스와 구조의 차이점

<시간/>

클래스와 구조를 구별하려면 먼저 데이터를 보유하고 정의하는 맥락에서 구조와 클래스가 모두 동등해 보인다는 것을 이해해야 합니다. 이 두 가지 모두 데이터 멤버에서 일부 기본값을 정의하고 보유할 수 있습니다. 그러나 이 컨텍스트를 넘어서 고려한다면 클래스는 구조에 비해 기능과 함께 더 많은 유연성을 제공합니다.

다음은 클래스와 구조의 중요한 차이점입니다.

Sr. 아니요. 클래스 구조
1 데이터 유형 클래스에 정의된 데이터는 참조로 메모리에 저장되며 액세스하기 위한 특정 주소가 있으므로 클래스가 참조 유형이라고 명시할 수 있습니다. 반면 구조의 경우 데이터 멤버의 값이 스택에 직접 저장되거나 인라인 포함 유형이 있으므로 구조는 값 유형으로 간주됩니다.
2 저장용량 위에서 언급했듯이 클래스의 경우 데이터 멤버가 참조로 저장되고 참조 유형이 힙 메모리에 할당됩니다. 반면 구조에서는 직접 값이 저장되어 값 유형이 스택 메모리에 할당됩니다.
3 생성자 클래스는 기능이 구현되어 있으므로 생성자 및 분해자를 사용하여 정의할 수 있습니다. 반면 구조에는 생성자 또는 분해자가 없을 수 있습니다. 이러한 구현이 제공되지 않기 때문입니다.
4 인스턴스화 Class가 new 키워드로 인스턴스를 인스턴스화할 수 있는 클래스의 도움으로 생성자와 함께 도입된 클래스입니다. 반면 구조는 새 키워드 없이 인스턴스를 생성할 수 있습니다.
5 상속 클래스는 상속 기능을 지원하므로 부모 클래스에서 속성을 상속할 수 있습니다. 반면 구조는 상속을 지원하지 않습니다.
6 보호된 수정자 Class가 protected 수정자를 지원하므로 클래스에 정의된 데이터 멤버와 함께 protected 수정자를 사용할 수 있습니다. 반면 구조는 보호된 수정자를 지원하지 않습니다.