본문 바로가기
2_ 바삭바삭 프로그래밍/C# and Visual C++

[C#] 클래스를 배열로 선언하기

by 준환이형님_ 2012. 6. 28.

아.. 이거 저만 몰랐나요? 


C# 클래스의 인스턴스를 배열로 선언할때 동적으로 전체 할당한 뒤, 다시 하나하나 다 할당해줘야 하다니. 이거 때문에 어제오늘 헤멘거 생각하면..@#$%&



출처:hazelstyle.egloos.com/5084248 by 헤이즐넛


C#에서 class를 배열로 선언하여 사용할 경우에는,
 아래 예제와 같이 배열 선언시에 new 키워드를 선언하고, 다시 한번 개별 요소마다 new 선언을 해 주어야 한다.

========================================================================================
class Lens
{
  int diameter;
  public Lens(int dia) // 생성자
  {
    diameter = dia;
  }
}

class Camera
{
  Lens[] lens; // Lens 클래스의 배열 선언
  public Camera(int nLens) // Camera 클래스 생성자,  예제로 Class 생성자가 nLens라는 값을 초기 변수를 갖는다고 가정
  {
    lens = new Lens[nLens]; // lens 변수에 5개의 Class 메모리 할당
    for (int i=0; i<nLens; i++)
      lens[i] = new Lens(3.0);  // 개별 lens 요소에 Lens 클래스 초기화 선언 (diameter=3.0 으로 초기화)
  }
}