gpt4 book ai didi

c# - 为什么在有泛型返回值时编译器不能推断出泛型参数?

转载 作者:行者123 更新时间:2023-11-30 21:53:04 27 4
gpt4 key购买 nike

<分区>

考虑以下函数:

public void DoSomething<TSource>(TSource data)
{
// ...
}

在 C# 中,编译器可以通过检查方法的参数隐式推断 TSource 的类型:

DoSomething("Hello") // Works fine. DoSomething<string>("Hello") is called.

为什么我们不能在有通用返回值的情况下做同样的事情?

例如:

public TResult DoSomething<TResult, TSource>(TSource data)
{
// ...
}

TResult 无法推断(我明白为什么),但编译器肯定可以推断出 TSource 的类型,不是吗?

但是,这不会编译:

int result = DoSomething<int>("Hello"); // This should call DoSomething<int,string>("Hello")

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