2014-10-22 2 views
0

이름없는 객체는 어떻게 참조 할 수 있습니까? 나는 사각형 격자를 만들고이름없는 객체를 속성으로 참조하려면 어떻게해야합니까?

for (int X =0; X <= 10; X++) 
{ 
    for(int Y =0; Y <= 10; Y++) 
    { 
     new Cell(X, Y); 
    } 
} 

같은 것을 사용하고 있다면 게임을 , 나는 이름이없는 100 개 세포를 가지고거야. 아마도 같은 그 좌표에 의해 셀 또는 뭔가

HALP를 참조

ThisCell.DoSomething(); 

로, 자신의 좌표에 의해 그들에게 참조, 어떻게 수정 않거나 나중에 여부를 확인합니다. 나는 전화하기 위해 자신의 작은 애견 이름을 가진 1000 개 이상의 셀을 가질 수 없습니다. 새로운 셀을 만들지 않고 무언가의 이웃을 확인하는 방법이 있어야합니다 ...

기본적으로 내가 가지고있는 문제는 각각의 이웃 수표에 대해 예를 들어, 잘못된 값을 반환하는 새로운 기본 셀을 만듭니다.

너희 중에 누구든지, 예를 들어, 나에게 그 위쪽으로 이웃의 booleanIsWalkable을 확인하는 좋은 기능을 줄 수 있다면 ... 나는 대단히

+0

아마 다차원 배열에 넣으십시오. 참조를 저장하지 않으면 다시 참조 할 수 없습니다. –

+0

@Matt에 의하면, 당신이 그들을 참조하지 않는다면 다시 얻을 수 없다고 말합니다. 뿐만 아니라,'new Cell()'줄을 넘어 서면 가비지 콜렉션을 사용할 수있게되고 더 이상 존재하지 않게 될 것입니다. –

답변

1

다음 배열을 만들기

거기에 당신의 세포를 저장 감사하겠습니다

Cell[,] cells = new Cell[10,10]; 
for (int X =0; X <= 10; X++) 
{ 
    for(int Y =0; Y <= 10; Y++) 
    { 
     cells[X,Y] = new Cell(X, Y); 
    } 
} 
늦게 셀을 검색하려면 당신은 그냥 X의 사용, y는 인덱스 배열 좌표

Cell someCell = cells[5,5]; // for example 

I을 좌표를 조작하여 이웃을 쉽게 찾을 수 있습니다. 예를 들어, 각 셀은 또한이 경우는 같은 것을 할 수있는 (생성자 매개 변수 제안) 자신의 X 및 Y 좌표입니다 :

Cell cellAboveMe = cells[someCell.X, someCell.Y - 1]; 

을 비록 당신이 (경계 검사를 포함 할 수 있습니다 참고 다음이 Y==0 경우 이 셀 위의 셀이 없습니다.)

이것은 매우 기본적인 작업이므로 배열 작동 방식을 읽으십시오. 여기 참조 : 예를 들어

http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

합니다.

+0

셀 someCell = 셀 [5,5]; 그것이 내가 말한 것입니다.이 셀을 복제하거나 새로운 객체를 만들지는 않습니까? –

+0

또한 OutOfRange 예외 오류가 발생합니다. –

+0

@AlexMitan : '셀'은 참조 유형 (클래스)이며 값 유형 (구조체)이 아니라고 가정합니다. 복제하지 않고 새 객체를 만들지 않습니다. OutOfRange 예외의 경우 범위를 벗어난 배열에 인덱스를 전달합니다. –

2

당신은 당신의 유형 Cell의 배열을 생성 할 수 있습니다 :

Cell[,] myCells = new Cell[10,10] 

변화를 new Cell(X, Y); 당신은 항상 모든 셀을 참조 할 수 있습니다 거기에서

myCells[X,Y] = new Cell();에 : myCells[1,2].DoSomething();

관련 문제