Ошибка компилятора CS1928
Обновлен: Ноябрь 2007
Сообщение об ошибке
"Тип" не содержит определения для "метод" и наиболее подходящий перегруженный метод расширения "метод" содержит несколько недопустимых аргументов.
'Type' does not contain a definition for 'method' and the best extension method overload 'method' has some invalid arguments.
Эта ошибка создается, если компилятору не удается найти член класса с именем вызываемого метода. Компилятор может найти метод расширения с этим именем, однако его подпись не совпадает с типами, переданными в вызове метода.
Исправление ошибки
- Передайте типы, которые соответствуют существующему методу расширения или методу класса.
Пример
Следующий код вызывает ошибку CS1928:
// cs1928.cs
class Test
{
static void Main()
{
Test t = new Test();
t.M("hi"); // CS1928
}
}
static class Ext
{
public static void M(this Test t, int i)
{
}
}
Эта ошибка часто сопровождается ошибкой CS1503: "Аргумент "n": преобразование типа из "тип_А" в "тип_B" невозможно".