분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
예시 ) 클래스안 전체 소스를 적은게 아닙니다. 질문을 이해하기 위한 코드입니다.
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객체의 값으로 바뀌는것도 그렇고
마지막 객체로 포인터가 바뀌는게 이해가 안가네요.
알려주시면 감사하겠습니다.
죄송합니다. 댓글 작성은 회원만 가능합니다.