게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C# for문 객체 생성 포인터 질문 드립니다.
게시물ID : programmer_22454짧은주소 복사하기
작성자 : 역전스
추천 : 0
조회수 : 650회
댓글수 : 2개
등록시간 : 2018/06/17 23:23:18

예시 ) 클래스안 전체 소스를 적은게 아닙니다. 질문을 이해하기 위한 코드입니다.


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객체의 값으로 바뀌는것도 그렇고


마지막 객체로 포인터가 바뀌는게 이해가 안가네요.


알려주시면 감사하겠습니다.

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호