C #을 구조 (구조체)
C #에서, 구조는 데이터 구조의 값 유형이다. 그것은 하나의 변수는 다양한 유형의 데이터에 관련된 데이터를 저장할 수있다.구조체 키워드는 구조를 만드는 데 사용됩니다.
구조 기록을 나타 내기 위해 사용된다. 동적 라이브러리 책을 추적 할 가정하자. 다음과 같은 속성의 각 책을 추적 할 수 있습니다 :
- 표제
- 저자
- 제목
- 책 ID
정의 구조
을 정의 구조, 당신이해야 사용 구조체 문. 프로그램의 구조체 문은 하나 이상의 부재로 새로운 데이터 유형을 정의한다.
예를 들어, 다음과 같은 방식으로 장부 구조를 선언 할 수 있습니다 :
구조체 도서 { 공공 문자열 제목; 공공 문자열 저자; 공공 문자열 제목; 공공 INT의 book_id; };
다음 프로그램 구조의 사용을 보여
시스템을 이용하여; 구조체 도서 { 공공 문자열 제목; 공공 문자열 저자; 공공 문자열 제목; 공공 INT의 book_id; }; 공용 클래스 testStructure { 공공 정적 무효 메인 (문자열 []에 인수) { 책 Book1을 / * 선언 Book1을 입력 한 책 * / 책 BOOK2 / * 선언 BOOK2 입력 한 책 * / / * 1 권 자세히 * / Book1.title는 = "C 프로그래밍"; Book1.author = "Nuha 알리"; Book1.subject = "C 프로그래밍 튜토리얼"; Book1.book_id = 6495407; / * 2 권의 상세한 설명의 * / Book2.title는 = "통신 결제"; Book2.author = "자라 알리"; Book2.subject는 = "통신 결제 자습서"; Book2.book_id = 6495700; / * 인쇄 Book1을 정보 * / Console.WriteLine ( "1 권 제목 : {0}", Book1.title을); Console.WriteLine ( "1 권 저자 : {0}", Book1.author을); Console.WriteLine ( "1 권 제목 : {0}", Book1.subject을); Console.WriteLine ( "1 권 book_id : {0}", Book1.book_id을); / * 인쇄 BOOK2 정보 * / Console.WriteLine ( "2 권 제목 : {0}", Book2.title을); Console.WriteLine ( "2 권 저자 : {0}", Book2.author을); Console.WriteLine ( "2 권 제목 : {0}", Book2.subject을); Console.WriteLine ( "2 권 book_id : {0}", Book2.book_id을); Console.ReadKey (); } }
상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를
1 권 제목 : C 프로그래밍 1 권 저자 : Nuha 알리 1 권 제목 : C 프로그래밍 자습서 1 권 book_id : 6495407 제 2 권 제목 : 통신 결제 제 2 권 저자 : 자라 알리 제 2 권 제목 : 텔레콤의 결제 자습서 제 2 권 book_id : 6495700
특징 C # 구조
당신은 도서라는 간단한 구조를 사용하고 있습니다. C # 및 + + 다른 구조에서 C 또는 C의 전통적인 구조에서. C #에서 구조 특성 :
- 구조 방법, 필드, 인덱스, 속성, 연산자, 메소드, 이벤트를 가질 수있다.
- 구조 생성자를 정의 할 수 있습니다,하지만 당신은 소멸자를 정의 할 수 없습니다. 그러나 구조에 대한 기본 생성자를 정의 할 수 없습니다. 기본 생성자는 자동으로 정의되어 있으며, 변경할 수 없다.
- 클래스와 달리, 구조는 다른 구조 나 클래스에서 상속 할 수 없습니다.
- 다른 구조 또는 구조없는 수준의 인프라로.
- 구조물은 하나 이상의 인터페이스를 구현할 수있다.
- 구조 부재는 추상, 가상 또는 보호로서 지정 될 수 없다.
- 당신이 새로운 연산자를 사용하여 구성 개체를 만들 때 구조를 만들려면 적절한 생성자를 호출합니다.클래스와 달리, 구조가 새로운 연산자를 사용할 수없는 것은 인스턴스화합니다.
- 당신이 새로운 연산자를 사용하지 않을 경우, 모든 필드가 초기화 된 후에 만, 필드는 할당은 객체가 사용하는 만했다이었다.
구조 대 클래스
클래스와 구조는 다음과 같은 기본적인 차이가 있습니다 :
- 클래스입니다 참조 유형, 구조되는 값 유형입니다.
- 구조 상속을 지원하지 않습니다.
- 구조는 기본 생성자를 선언 할 수 없습니다.
위의 논의를 들어, 위의 예를 다시 보자 :
시스템을 이용하여; 구조체 도서 { 개인 문자열 제목; 개인 문자열 저자; 개인 문자열 주제; 개인 INT의 book_id; 공공 무효에 getValues (문자열 t, 문자열 A, 문자열의, INT 아이디) { 제목 = t; 저자는 =; 대상 = S; book_id = 아이디; } 공공 무효 표시 () { Console.WriteLine ( "제목 : {0}", 제목); Console.WriteLine ( "저자 : {0}", 저자); Console.WriteLine ( "제목 : {0}", 주제); Console.WriteLine ( "Book_id : {0}", book_id); } }; 공용 클래스 testStructure { 공공 정적 무효 메인 (문자열 []에 인수) { 책 Book1을 = 새 책 (); / * 선언 Book1을 입력 책 * / 책 BOOK2 = 새 책 (); / * 선언 BOOK2 입력 한 책 * / / * 1 권 자세히 * / Book1.getValues ( "C 프로그래밍", "Nuha 알리", "C 프로그래밍 튜토리얼", 6495407); / * 2 권의 상세한 설명의 * / Book2.getValues ( "통신 결제" "자라 알리", "통신 결제 자습서", 6495700); / * 인쇄 Book1을 정보 * / Book1.display (); / * 인쇄 BOOK2 정보 * / Book2.display (); Console.ReadKey (); } }
상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를
제목 : C 프로그래밍 저자 : Nuha 알리 제목 : C 프로그래밍 자습서 Book_id : 6495407 제목 : 통신 결제 저자 : 자라 알리 제목 : 텔레콤 청구 자습서 Book_id : 6495700