3

我的项目有一个运行良好的扩展方法:

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

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

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

我可以删除扩展并继续,但过去它非常方便。

为弗雷德里克添加:

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

我想知道我是否将这些数字转换为 Double 是否可以解决问题。我马上试试。像:

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

1 回答 1

2

很可能,您引用的 DLL 定义了相同的扩展方法,或者您在代码中的其他地方定义了该扩展方法。尝试在文件搜索中进行查找IsBetween,看看它是否出现。如果没有,请查看您引用的 DLL,并查看其中一个中是否不存在此扩展。

于 2013-03-28T16:14:55.790 回答