<p>예시 ) 클래스안 전체 소스를 적은게 아닙니다. 질문을 이해하기 위한 코드입니다.</p> <p><br></p> <p>int txtMaxNum = 10;</p> <p><br></p> <p>TextBox[] txtList = new TextBox(txtMaxNum); </p> <p><br></p> <p>private void Test()</p> <p>{</p> <p> for(int i = 1; i <= maxNum; i++)</p> <p> {</p> <p> Random rnd = new Random();</p> <p> Random rnd2 = new Random();</p> <p> </p> <p> if(int i == 1)</p> <p> { </p> <p> txtList[i-1].text = rnd.Next(1.10).ToString();</p> <p> }</p> <p> else if(int == maxNum)</p> <p> {</p> <p> txtList[i-1].text = rnd.Next(1.10).ToString();</p> <p> }</p> <p> else</p> <p> {</p> <p> txtList[i-1].text = rnd2.Next(1.10).ToString();</p> <p> }</p> <p> }</p> <p>}</p> <p><br></p> <p>이럴 경우</p> <p><br></p> <p>txtList에 적용된 랜덤값은</p> <p><br></p> <p>마지막 rnd 객체의 값으로 전부 할당되여 나옵니다.</p> <p><br></p> <p>마지막 생성된 Random 객체의 포인터를 가르키는 결과가 나오는데</p> <p><br></p> <p>이게 왜그런거는걸까요?</p> <p><br></p> <p>new 생성자을 통해 분명 메모리는 힙영역에 다 생성되였을텐데</p> <p><br></p> <p>rnd2까지 마지막 rnd객체의 값으로 바뀌는것도 그렇고</p> <p><br></p> <p>마지막 객체로 포인터가 바뀌는게 이해가 안가네요.</p> <p><br></p> <p>알려주시면 감사하겠습니다.</p>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.