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


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

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

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

'имя_конструкции1' является "конструкция1", но используется как "конструкция2"
'construct1_name' is a 'construct1' but is used like a 'construct2'

Компилятором обнаружена ситуация, при которой конструкция используется неверным способом или к ней применяется недопустимая операция. Ниже следуют некоторые наиболее распространенные примеры этого.

  • Попытка создать экземпляр пространства имен (а не класса).

  • Попытка вызвать поле (а не метод).

  • Попытка использовать тип как переменную.

  • Попытка использовать внешний псевдоним в качестве типа.

Для устранения этой ошибки убедитесь, что выполняемая операция допускается для типа, к которому она применяется.

Пример

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

// CS0118.cs
// compile with: /target:library
namespace MyNamespace
{
   class MyClass
   {
      // MyNamespace not a class
      MyNamespace ix = new MyNamespace ();   // CS0118
   }
}