Explain.
자주있는 일은 아니지만, 종종
System.Array type의 값, 즉 C#에서 배열로 선언한 값들을 사용할때
orgArr[원본]
destArr[복사본]
즉 Array 에 대한 Reference가 아닌 Copy가 필요한경우
무의식중에 destArr = orgArr;
이런식으로 코딩하고 넘어가는경우(즉, 아직 저처럼 실력이 부족한경우겠지만..)
가 발생할수도 있지만 이경우 destArr가 orgArr의 data를 Copy한것이아닌
reference(참조)하고 있는것이므로
orgArr의 데이터값 변화가 생기면 자동으로 destArr의값또한 변화가 생긴다.
이러한특징은 C#의 System.Array type(int [] , string[] , float [] 등등)
으로 선언된 데이터는 모두 reference형식으로 선언되는점때문에 일어나는 현상이다.
이럴때 copy가 필요한경우
Code.
System.Array.Copy(orgArray, destArray, orgArray.Length); // prams (원본 배열 , 복사본 배열, 원본배열의 길이)
0 개의 댓글:
댓글 쓰기