Compilerfehler CS1112Compiler Error CS1112

Verwenden Sie „System.Runtime.CompilerServices.ExtensionAttribute“ nicht.Do not use 'System.Runtime.CompilerServices.ExtensionAttribute'. Verwenden Sie stattdessen das Schlüsselwort „this“.Use the 'this' keyword instead.

Dieser Fehler wird ausgelöst, wenn ExtensionAttribute in einer nicht statischen Klasse mit Erweiterungsmethoden verwendet wird.This error is generated when the ExtensionAttribute is used on a non-static class that contains extension methods. Falls dieses Attribut für eine statische Klasse verwendet wird, tritt eventuell ein anderer Fehler wie der Fehler CS0708, „Instanzmember können nicht in einer statischen Klasse deklariert werden“, auf.If this attribute is used on a static class, another error, such as CS0708: "Cannot declare instance members in a static class," might occur.

In C# müssen Erweiterungsmethoden in einer statischen Klasse definiert werden, und der erste Parameter der Methode wird mit dem Schlüsselwort this modifiziert.In C#, extension methods must be defined in a static class and the first parameter of the method is modified with the this keyword. Verwenden Sie das Attribut nicht im Quellcode.Do not use the attribute at all in the source code. Weitere Informationen finden Sie unter Erweiterungsmethoden.For more information, see Extension Methods.

So beheben Sie diesen FehlerTo correct this error

  1. Entfernen Sie das Attribut, und wenden Sie den Modifizierer this auf den ersten Parameter der Methode an.Remove the attribute and apply the this modifier to the first parameter of the method.

BeispielExample

Im folgenden Beispiel wird der Fehler CS1112 generiert:The following example generates CS1112:

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

class A { }