Latest web development tutorials

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