Поделиться через


Ошибка компилятора CS1112

Обновлен: Ноябрь 2007

Сообщение об ошибке

Не следует применять "System.Runtime.CompilerServices.ExtensionAttribute". Используйте вместо этого ключевое слово "this".
Do not use 'System.Runtime.CompilerServices.ExtensionAttribute'. Use the 'this' keyword instead.

Данная ошибка создается при использовании атрибута ExtensionAttribute в классе, который не является статическим и содержит методы расширения. Если этот атрибут используется в статическом классе, могут возникать другие ошибки, например CS0708: "Нельзя объявлять члены экземпляра в статическом классе".

В языке C# методы расширения должны определяться в статическом классе, и первый параметр метода изменяется с помощью ключевого слова this. Не используйте этот атрибут в исходном коде. Дополнительные сведения см. в разделе Методы расширения (руководство по программированию в C#).

Исправление ошибки

  • Удалите этот атрибут и примените модификатор this к первому параметру метода.

Пример

Следующий пример приводит к возникновению ошибки CS1112:

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

class A { }