Compiler Error CS1112

Não use '. ExtensionAttribute'.Use 'this' palavra-chave em vez disso.

Esse erro é gerado quando o ExtensionAttribute é usado em uma classe non-static, que contém métodos de extensão. Se esse atributo é usado em uma classe estática, outro erro, como, por exemplo, CS0708: "Não é possível declarar membros de instância em uma classe estática" podem ocorrer.

No C#, os métodos de extensão devem ser definidos em uma classe estática e o primeiro parâmetro do método é modificado com a this palavra-chave. Não use o atributo todo o código-fonte. Para obter mais informações, consulte Métodos de extensão (guia de programação TRANSLATION FROM VPE FOR CSHARP).

Para corrigir este erro

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

Exemplo

O exemplo a seguir gera CS1112:

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

class A { }