2011-08-19 4 views
3

그래서 목록에 대해 호출 할 특정 메서드가 있습니다 (매번 다른 파일에서 실행되는 제네릭 메서드이므로 정적 클래스에 넣고 싶습니다).정적 클래스/메서드 this 및 generics

public static List<Item> GetRangeOrMax(this List<Item> list, int amount) 
     { 
      return list.Count < amount ? list.GetRange(0, list.Count) : list.GetRange(0, amount); 
     } 

문제는 내가 유형 항목이다에서이 작업을 실행할 필요가 없습니다 모든 목록이다 :

방법이있다. 제네릭을 사용하여이 문제를 해결할 수 있을지 궁금합니다. 뭐라 구요? (List<T> list ...

이 방법은 그 값을 반환해야하며이 키워드를 계속 사용하고 싶습니다. 가능하지 않다면 . 각 유형에 대해 다른 overloader와 방법

답변

6

당신은 일반적인 확장 방법을 사용할 수 있습니다

static List<T> GetRangeOrMax<T>(this List<T> list, int amount)   
{    
     return list.Count < amount ? list.GetRange(0, list.Count) : list.GetRange(0, amount);   
} 
+0

를 내가 얻을 내 정적 클래스에 다음과 같은 오류 :. '형식 또는 네임 스페이스 이름'T는 '수 찾을 수 없습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) ' – Fverswijver

+0

@ Fverswijver 내 코드를 정확히 복사 했습니까? 메서드에 형식 매개 변수가 누락 된 것 같습니다. – Bas

+0

아, 바보 같은 날. 그랬어! 고마워. – Fverswijver