Ошибка компилятора 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 { }