2011-08-19 114 views
3

所以我有一個特定的方法,我想調用一個List(這是一個通用的方法,我每次運行在不同的文件,所以我想把它放在一個靜態類)。靜態類/方法this和泛型

的方法是這樣的:

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