Errore del compilatore CS1112

Aggiornamento: novembre 2007

Messaggio di errore

Non utilizzare 'System.Runtime.CompilerServices.ExtentionAttribute'. Al suo posto, utilizzare la parola chiave 'this'.
Do not use 'System.Runtime.CompilerServices.ExtensionAttribute'. Use the 'this' keyword instead.

Questo errore viene generato quando ExtensionAttribute viene utilizzato in una classe non statica che contiene metodi di estensione. Se questo attributo viene utilizzato in una classe statica, potrebbe verificarsi un altro errore, quale CS0708: "Impossibile dichiarare i membri di istanza in una classe statica".

In C#, i metodi di estensione devono essere definiti in una classe statica e il primo parametro del metodo è modificato con la parola chiave this. Non utilizzare l'attributo nel codice sorgente. Per ulteriori informazioni, vedere Metodi di estensione (Guida per programmatori C#).

Per correggere l'errore

  • Rimuovere l'attributo e applicare il modificatore this al primo parametro del metodo.

Esempio

Nell'esempio seguente viene generato l'errore CS1112:

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

class A { }