Erro do Compilador CS1112

Não use “System.Runtime.CompilerServices.ExtensionAttribute”.Use a palavra-chave 'this'.

Esse erro é gerado quando ExtensionAttribute é usado em uma classe de não estático que contém métodos de extensão. Se esse atributo for usado em uma classe estática, outro erro, como CS0708: “Não pode declarar membros de instância de uma classe estática,” poderá ocorrer.

No C#, os métodos de extensão devem ser definidos em uma classe estática e o primeiro parâmetro de método é alterado com a palavra-chave de this . Não use o atributo de qualquer no código-fonte. Para obter mais informações, consulte Métodos de extensão (Guia de Programação em C#).

Para corrigir este erro

  • Remover o atributo e aplicar o modificador de this o primeiro parâmetro do método.

Exemplo

O exemplo a seguir gerenciar CS1112:

// cs1112.cs
[System.Runtime.CompilerServices.ExtensionAttribute] // CS1112
public class Extensions
{
    public bool A(bool b) { return b; }
}

class A { }