Поделиться через


Ошибка компилятора 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" невозможно".

См. также

Ссылки

Методы расширения (руководство по программированию в C#)