Compartilhar via


CS1929 de erro do compilador

Mensagem de erro

Argumento de instância: não é possível converter de 'typeA' em 'typeB'.

Este erro é gerado quando você tentar invocar um método de extensão de uma classe que não estende.No exemplo mostrado aqui, o método de extensão está definido para a classe derivada A, mas não para a classe base B.

Para corrigir este erro

  • Crie um novo método de extensão para o tipo de onde você tem para invocá-lo ou mova a telefonar para um objeto do tipo que estende o método existente.

Exemplo

O código a seguir gera CS1928 e 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
        }
    }

Consulte também

Referência

Métodos de extensão (Guia de programação C#)