Compiler Error CS0118

'construct1_name' is a 'construct1' but is used like a 'construct2'

The compiler detected a situation in which a construct was used in some erroneous way or a disallowed operation was tried on a construct. Some common examples include the following:

  • A try to instantiate a namespace (instead of a class)

  • A try to call a field (instead of a method)

  • A try to use a type as a variable

  • A try to use an extern alias as a type.

To resolve this error, make sure that the operation you are performing is valid for the type you are performing the operation on.


The following sample generates CS0118.

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