静态类/方法this和泛型

3

我有一个希望在列表上调用的特定方法(这是一个通用方法,在不同的文件中每次都会运行,因此我想将它放在静态类中)。

该方法如下:

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

问题在于,并非我需要运行此列表的每个列表都是Item类型。我想知道是否可以使用泛型来解决这个问题?例如 (this List<T> list ...

这里的问题是该方法还必须返回该值,而我想继续使用this关键字。如果不可能,我猜我将不得不为每种类型创建一个不同的重载方法。

1个回答

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);        
}

我在我的静态类中遇到了以下错误:找不到类型或命名空间名称“T”(是否缺少 using 指令或程序集引用?) - Fverswijver
@Fverswijver,你是完全复制了我的代码吗?我认为你在方法上缺少了类型参数。 - Bas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接