[번역] C# 컬렉션 표현식을 사용하여 코드 리팩터링 하기

5 Likes

Edit

아 직접 쓰신게 아니고 번역하신 것인가 보네요~


내용이 가볍게 읽히면서도 실용적이라 좋네요 :+1:

컬렉션 표현식으로 컬렉션을 초기화할 때 컴파일러는 기능적으로 컬렉션 이니셜라이저를 사용하는 것과 동일한 코드를 생성한다. 때로는 생성된 코드가 컬렉션 이니셜라이저를 사용하는 것보다 훨씬 더 효율적일 수 있다. 다음 예제를 살펴보자:

List someList = new() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

컬렉션 이니셜라이저의 규칙에 따라 컴파일러는 이니셜라이저의 각 요소에 대해 Add 메서드를 호출해야 한다. 그러나 컬렉션 표현식 구문을 사용하려는 경우:

List someList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

컴파일러는 더 빠르거나 더 최적화될 수 있는 AddRange를 대신 사용하는 코드를 생성한다. 컴파일러는 컬렉션 표현식의 대상 유형을 알고 있기 때문에 이러한 최적화를 수행할 수 있다.

이런 내부적 내용은 어떻게 공부하시는지 여쭤봐도 될까요?

1 Like

모든 닷넷 구현의 내부를 속속들이 아는 것도 힘들지만, 그걸 위해 노력할 시간이 대부분 부족하죠.

양질의 글을 읽다가 행간에 숨겨진 보석을 발견하는 행운이… 주요 루트 아닐까요?

2 Likes