Error del compilador CS0116

Actualización: noviembre 2007

Mensaje de error

Un espacio de nombres no contiene directamente miembros como campos o métodos
A namespace does not directly contain members such as fields or methods

Dentro de un espacio de nombres, el compilador sólo acepta clases, estructuras, uniones, enumeraciones, interfaces y delegados. Este error lo generan con frecuencia desarrolladores habituados a C/C++, que se olvidan de que en C# los métodos y las variables se deben declarar y definir dentro de una estructura o clase. Para obtener más información, vea Estructura general de un programa de C# (Guía de programación de C#).

Ejemplo

El código siguiente genera el error CS0116:

// CS0116.cs
namespace x
{
    using System;

    // method must be in class/struct
    void Method(string str) // CS0116
    {
        Console.WriteLine(str);
    }
}