Как определить библиотеку для неоднозначного метода?
Ошибка: неоднозначный вызов следующих методов или свойств: "AngleSharp.Text.CharExtensions.IsDigit(char)" и "Titanium.TypesFuncs.IsDigit(char)"
PS: на самом деле, аргументы функции IsDigit – this char, а не char.
Я понимаю что происходит – у меня в библиотеке Titanium и в сторонней библиотеке AngleSharp имеется один и тот же метод (который, впринципе, выполняет одну и тоже и довольно очевидную вещь. Почему его только в язык не добавили, непонятно). Как сказать компилятору, что я во всем коде хочу использовать метод одной конкретной библиотеки?
Что-то вроде using IsDigit = Titanium.TypesFuncs.IsDigit?
Ответы (1 шт):
Я попробовал сделать подобный проект. Если using объявить внутри namespace, то ошибки не возникает:
using System;
using AngleSharp.Text;
namespace CustomExtensions
{
public static class CharExtension
{
public static bool IsDigit(this char c)
{
return Char.IsDigit(c);
}
}
}
namespace Experim
{
using static CustomExtensions.CharExtension;
class Program
{
static void Main(string[] args)
{
char a = '5';
Console.WriteLine(a.IsDigit());
Console.ReadKey();
}
}
}