У меня есть метод расширения моего проекта, который работает отлично:Неоднозначный вызов на метод расширения
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;
}
}
Теперь, когда я пытаюсь построить мой проект я получаю эту ошибку:
Error 1699 The call is ambiguous between the following methods or properties: 'BillingFormsApplication.Extensions.IsBetween(double, double, double)' and 'BillingFormsApplication.Extensions.IsBetween(double, double, double)'
Там только один метод IsBetween
в файле Extensions
... И только один метод IsBetween
во всем решении.
Я попытался очистить и перестроить решение. Все еще получаю ошибку.
Я мог удалить расширение и продолжать движение, но в прошлом это было очень удобно.
Добавлена Frederic:
if (percentCash.IsBetween(0, 99))
{
Интересно, если я бросаю эти цифры, чтобы удвоить, если это будет исправить. Я попробую это через минуту. Как:
if (percentCash.IsBetween((double)0, (double)99))
Только что заметил, что подпись метода отсутствует «IComparable» после «где T:» Это была опечатка с моей стороны при добавлении вопроса, но в коде. –
pStan
попробуйте прокомментировать расширение и посмотрите, может ли intellisence разрешить какой-либо метод 'IsBetween' –
Возможно, у вас есть ссылка на это расширение из нескольких DLL. –