gpt4 book ai didi

c# - 通用方法 : Cannot convert from Tuple to T

转载 作者:太空宇宙 更新时间:2023-11-03 19:41:32 25 4
gpt4 key购买 nike

我有一个通用方法:

public T Search<T>(entry entry)
{
return (T)new Tuple<decimal, decimal>(entry.from, entry.to);

return default(T);
}

我有根据传入的 T 的值返回不同结果的逻辑,但是编译器不允许我这样做,相反我得到了这个错误:"Cannot从元组转换为 T"

我该如何解决这个问题?

最佳答案

我怀疑您的实际代码在 T 类型上使用分支,然后有条件地尝试返回应该兼容的东西。

编译器无法跟踪内部逻辑,就它而言,当您尝试转换时,T 仍可能是任何。你可以用第二次施法强制它的手:

public T Search<T>(entry entry)
{
return (T)(object)new Tuple<decimal, decimal>(entry.from, entry.to);

return default(T);
}

但是你最好有正确的输入逻辑,否则你会抛出运行时错误。我个人不喜欢“说谎”的泛型方法,因为它们允许某些东西使用特定类型参数进行编译,但随后由于类型不兼容而在运行时崩溃。相反,我希望实现多个相关 方法,您可以在这些方法中将类型限制为您真正可以处理的那些类型。

关于c# - 通用方法 : Cannot convert from Tuple to T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52585477/

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