본문 바로가기

C#(ASP.NET)

struct(구조체)


1.상속을 받지도 상속을 하지도 않는다.

2.클래스는 항상 new 연산자를 사용해 객체를 생성했다.

  구조체 new를 사용하지 않아도 된다. 하지만 이렇게 하면 객체는 메모리에 할당되지 않은 상태로

  남기 때문에 모든 멤버(필드)를 초기화 해줘야 한다. 생성자를 선언할 때 매개변수 없이 하면

  오류가 발생한다.

  기본 생성자는 반드시 구조체의 모든 멤버를 초기화 해야한다.

3.struct의 접근 제한자의 디폴트는 private이다.

ex)

Struct point

{

   public int x;

   public int y;

}

--------------------------------------------

/* 2/27 구조체(struct)*/
 
using System;

public struct Point
{
 public int x;
 public int y;
 
 public Point(int x, int y) //생성자
 {
  this.x = x;
  this.y = y;
 }
}

class Structure
{
 public static void Main()
 {
  Point p = new Point(30, 70); //new를 이용해 생성자를 호출한다.
  Console.WriteLine("I'm at Heap");
  Console.WriteLine(" X : " +p.x+ ", Y : " +p.y);
  
  //new 없이 객체를 선언하면 모든 멤버를 초기화 해줘야 한다.
  Point s;
  s.x = 20;
  s.y = -49;
  Console.WriteLine("I'm at stack");
  Console.WriteLine(" X: : "+s.x+ ", Y : " +s.y);
 }
}

 

[출처] 곰탱이의 블로그