Ошибка компилятора CS1929
Обновлен: Ноябрь 2007
Сообщение об ошибке
Аргумент экземпляра: невозможно преобразовать из "typeA" в "typeB".
Instance argument: cannot convert from 'typeA' to 'typeB'.
Данная ошибка возникает при попытке вызвать метод расширения из класса, который он не расширяет. В приведенном здесь примере метод расширения определен для производного класса A, но не для базового класса B.
Исправление данной ошибки
- Создайте новый метод расширения для типа, в котором он вызван, или переместите вызов метода в объект типа, расширяемого существующим методом.
Пример
В следующем коде возникают ошибки CS1928 и CS1929.
// cs1929.cs
using System.Linq;
using System.Collections;
static class Ext
{
public static void ExtMethod(this A a)
{
}
}
class A : B
{
}
class B
{
static void Main()
{
B b = new B();
b.ExtMethod(); // CS1929
}
}