Error del compilador CS1112
Actualización: noviembre 2007
Mensaje de error
No use 'System.Runtime.CompilerServices.ExtensionAttribute'. Use la palabra clave 'this' en su lugar.
Do not use 'System.Runtime.CompilerServices.ExtensionAttribute'. Use the 'this' keyword instead.
Este error se genera cuando se utiliza ExtensionAttribute en una clase no estática que contiene métodos de extensión. Si este atributo se utiliza en una clase estática, puede producirse otro error, como el CS0708: "No se pueden declarar miembros de instancia en una clase estática".
En C#, los métodos de extensión deben definirse en una clase estática y el primer parámetro del método se modifica con la palabra clave this. No utilice el atributo en el código fuente. Para obtener más información, consulte Métodos de extensión (Guía de programación de C#).
Para corregir este error
- Quite el atributo y aplique el modificador this al primer parámetro del método.
Ejemplo
El ejemplo siguiente genera el error CS1112:
// cs1112.cs
[System.Runtime.CompilerServices.ExtensionAttribute] // CS1112
public class Extensions
{
public bool A(bool b) { return b; }
}
class A { }