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