gpt4 book ai didi

c# - 为什么泛型方法不能推断参数类型?

转载 作者:太空狗 更新时间:2023-10-30 00:11:18 25 4
gpt4 key购买 nike

public delegate T GenDel<T>();

class Program
{
public static void genMet<T>(GenDel<T> d) { }

static void Main(string[] args)
{
genMet(new GenDel<string>(() => "Works"));
genMet(() => "Works");
}
}

在上面的示例中,泛型方法接收 lambda 表达式作为参数(genMet(() => "Works");),并且从这个 lambda 表达式方法能够推断参数类型。

在下一个示例中,为什么方法也不能推断参数类型,我们传递委托(delegate)实例作为参数而不是 lambda 表达式:

        genMet(new GenDel(() => "Doesn't work")); // Error: Using the generic type 'GenDel<T>' 
// requires 1 type arguments

最佳答案

类型推断仅适用于泛型方法,不适用于泛型类型或其构造函数。

关于c# - 为什么泛型方法不能推断参数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13806817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com