You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中声明带有泛型类型的Func?

泛型Func委托的正确定义方式

首先明确:你写的Func<T><List<T>, T>这种语法是不可行的,C#里的泛型委托声明规则不支持这种写法。要实现你想要的泛型委托逻辑,有两种直接的解决方案:


方式一:直接用内置泛型Func委托

C#已经内置了不同参数数量的泛型Func委托,你需要的是「输入List<T>、返回T」的委托,对应内置的Func<List<T>, T>,直接这么写就行:

Func<List<T>, T> myFunc = inputList => inputList.First();

注意:这段代码需要放在泛型上下文中(比如泛型方法、泛型类内部),如果你要指定具体类型,也可以直接替换T:

Func<List<string>, string> myFunc = inputList => inputList.First();

方式二:自定义泛型委托(按需使用)

如果内置委托满足不了你的特殊需求,也可以自己定义泛型委托类型:

public delegate T MyGenericFunc<T>(List<T> inputList);

// 使用示例
MyGenericFunc<int> myFunc = inputList => inputList.First();

你最初的写法错误在于,C#中泛型类型的参数是放在同一对尖括号里的,多参数用逗号分隔,而非嵌套尖括号。

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 04:20:24