2011-08-19 112 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