C# 通用参数推断和模糊函数调用-是否有解决方法?

C# 通用参数推断和模糊函数调用-是否有解决方法?,c#,generics,type-inference,ambiguous-call,C#,Generics,Type Inference,Ambiguous Call,可能重复: 我有两个功能: public static Degrees Convert<TInput>(this TInput input) where TInput : NumericValue, IDegreesBased, new() { //Some stuff } public static SquarredMeters Convert<TInput>(this TInput input) where TInput : NumericValue,

可能重复:

我有两个功能:

public static Degrees Convert<TInput>(this TInput input)
  where TInput : NumericValue, IDegreesBased, new()
{
  //Some stuff
}

public static SquarredMeters Convert<TInput>(this TInput input)
  where TInput : NumericValue, ISquarredMetersBased, new()
{
  // Some stuff
}
公共静态度转换(此输入)
其中TInput:NumericValue,idegreesbase,new()
{
//一些东西
}
公共静态平方米转换(此输入)
其中TInput:NumericValue,IsquaredMetersBased,new()
{
//一些东西
}
当我调用
new squaredkilometers(10).Convert()
时,出现一个错误,表示调用在上述两个函数之间不明确。
SquarredKilometers
类实现基于isquarredmeters的接口


编辑:这似乎很正常。这个精确的问题有什么解决办法吗?(接口实现)

您的函数签名相同-这无法工作。

尝试显式实现接口。

约束不是方法签名的一部分,因此方法具有相同的参数类型。Eric Lippert总是解释C#最好的:

你不能有这两种方法,因为它们接受相同数量的参数。
要使代码编译,您必须更改其中一个方法的签名,或者按照Grumbler85的建议实现接口。

这肯定是重复的,但我可能很难找到它。基本上,你不能因为约束而过载。我将编辑我的帖子和问题你能详细说明你的解决方案吗?:)