对扩展方法的模糊调用

时间:2013-03-28 16:07:18

标签: c#

我的项目上有一个工作正常的扩展方法:

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(double,double,   双)'和   'BillingFormsApplication.Extensions.IsBetween(double,double,   双)'

IsBetween文件中只有一个Extensions方法...在整个解决方案中只有一个IsBetween方法。

我尝试清理并重建解决方案。仍然得到错误。

我可以移除扩展并继续前进,但它在过去非常方便。

为Frederic添加:

                    if (percentCash.IsBetween(0, 99))
                {

我想知道如果能解决这个问题,我是否将这些数字转换为Double。我会在一分钟内尝试一下。像:

if (percentCash.IsBetween((double)0, (double)99))

1 个答案:

答案 0 :(得分:2)

很可能,您正在引用一个已定义相同扩展方法的DLL,或者您在代码中的其他位置定义了此DLL。尝试在文件中查找IsBetween,然后查看是否出现。如果没有,请查看您引用的DLL,并查看其中一个扩展名是否存在。