2021.08.09 네이버 블로그에 게시했던 글을 이전해온 게시글입니다.

 


리스트를 Clear 할 경우와 = new List로 초기화해주는 경우의 차이점에 대해 알아보았다.

우선 테스트용 스크립트를 아래와 같이 짜보았다.

 

 

리스트를 처음에는 test1을 넣고,

clear 또는 new List를 한 후

test2를 넣어보았다.

 

 

 

Test1과 Test2의 차이는 하나는 Clear, 하나는 새로 New List를 해준 것 밖에 없다.

 

 

 

결과는 다음과 같다

clear를 한 경우는 둘 다 test2가 들어갔으며,

new List를 한 경우는 test1, test2가 들어갔다.

 

 


 

좀 더 명확하게 보기 위하여 '안녕하세요' 'Hellow World!'로 재테스트 해보았다.

 

 

 

 


이렇게 되는 원인으로는 C# 도큐먼트에서 찾을 수 있다

https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.list-1.clear?view=net-5.0

 

 

List.clear의 경우 다른 개체에 한 참조도 해제되므로, 미리 넣어두었던 test1도 해제되어버리는 것이다.

따라서 후에 넣은 test2가 들어가는 것.

clear가 작업시간이 더 적게 소요되므로 작업시간을 줄이려면 clear로 사용하고

참조를 지우고싶지않거나 값의 재사용이 필요할 경우는 new 를 사용하는것이 좋다

 

 

 

+ Recent posts