【发布时间】:2013-03-28 16:07:18
【问题描述】:
我的项目中有一个运行良好的扩展方法:
public static class Extensions
{
public static bool IsBetween<T>(this T value, T low, T high)
where T : IComparable<T>
{
return value.CompareTo(low) >= 0 && value.CompareTo(high) <= 0;
}
}
现在,当我尝试构建我的项目时,我收到了这个错误:
错误 1699 以下方法之间的调用不明确或 特性: 'BillingFormsApplication.Extensions.IsBetween(双,双, 双)'和 'BillingFormsApplication.Extensions.IsBetween(双,双, 双)'
Extensions 文件中只有一个IsBetween 方法...并且整个解决方案中只有一个IsBetween 方法。
我尝试清理并重建解决方案。仍然收到错误。
我可以删除扩展程序并继续使用,但过去它非常方便。
为弗雷德里克添加:
if (percentCash.IsBetween(0, 99))
{
我想知道我是否将这些数字转换为 Double 是否可以解决问题。我马上试试。喜欢:
if (percentCash.IsBetween((double)0, (double)99))
【问题讨论】:
-
刚刚注意到方法签名在“where T:”之后缺少“IComparable
”,这是我添加问题时的错字,但它在代码中。 -
尝试注释掉扩展,看看智能是否仍然能够解析一些
IsBetween方法 -
也许你从多个 dll 中引用了这个扩展。
-
你能把代码贴在调用现场吗?
-
刚刚为您添加了 Frederic。谢谢!
标签: c#