나는 모든 IEnumerable<T>
확장 방법의 사용에 대해 약간 혼란 스럽다. intellisense는 항상 <T>
을 요구하고 있지만, 항상 <T>
을 지정할 필요는 없다고 생각한다.언제 IEnumerable 확장 메서드에 대해 <T> 형식을 지정해야합니까?
의 다음 I가 있다고 가정 해 봅시다 :
List<Person> people = GetSomePeople();
가 어떻게이 :
이에서List<string> names = people.ConvertAll<string>(p=>p.Name).Distinct<string>().ToList<string>();
다른 :
List<string> names = people.ConvertAll<string>(p=>p.Name).Distinct().ToList();
나는 두 줄의 코드는 위의 sxactly 생각 같은, 지금 질문 :
<T>
을 지정할시기와 건너 뛸시기를 어떻게 알 수 있습니까?
"암시 적 제네릭"이 아니라 실제로 "유형 유추"라고합니다. 그리고 타입 매개 변수가 아닌 제네릭 타입 * 인자 *를 추론합니다. 그냥 까다 롭습니다 :) –
감사합니다. :) 편집 됨. 그리고 BTW, 내가 그렇게 정확하다면, 나는 명성으로 111k를 가졌을 것입니다. 그러나 슬프게도 ... 나는 또한 가끔 잠을 자고 오직 손으로 만 입력 할 수 있습니다. :피 – Yogesh