错误:名称空间不直接包含诸如字段或方法之类的成员

时间:2018-07-24 05:33:38

标签: c#

以下是我试图通过命令“ cs”使用Microsoft .Net编译器进行编译的“ Hello World”程序。

Using System

public class csharp1
{
    private static void main()
    {
         console.writeline("yaaannn");
    }
}

但是我得到了错误:

  

CS0116:名称空间不直接包含诸如字段或方法之类的成员

在(1,1)也是如此

我检查了此错误:

Error "A namespace does not directly contain members such as fields or methods"

在上述问题中,编译是通过“ Visual Studio”完成的。因此,我不确定通过内置编译器和命令提示符进行编译时,有关“ app.config”文件的内容是否在此处保持良好状态。

然后我检查了以下问题:

"A namespace cannot directly contain members such as fields or methods" in Net.Reflector

但是在这里我们可以看到,有一个变量没有包含在类的括号内,但是在此代码中,没有任何变量超出了类的范围。

所以,我不知道是什么导致了这个问题。

我以为“使用系统”后缺少分号,但这也引发了相同的错误。

3 个答案:

答案 0 :(得分:1)

using中没有大写字母,System之后是;,而Main中带有大写字母M,则添加了命名空间:

using System;
namespace Test
{
    class csharp1
    {
       static void Main()
       {
           console.writeline("yaaannn");
       }
    }
}

答案 1 :(得分:1)

编译器认为:

Using System 

...正在尝试引入一个新成员,但这不在类型的上下文中,这就是为什么您会收到那条令人困惑的错误消息的原因。 C#区分大小写(关键字和方法名称均区分大小写)。 using伪指令需要是using而不是Using,并且最后需要用分号:

using System;

您的代码仍然无法编译,例如:

  • 您的main方法应为Main作为入口点。拥有称为main的方法是有效的(但非常规的),但是您的程序将没有入口点。
  • console.writeline应该是Console.WriteLine

因此要进行编译的最小更改为:

using System;

class csharp1
{
    static void Main()
    {
        Console.WriteLine("yaaannn");
    }
}

我还建议您遵循.NET naming conventions,它将为您的课程命名为Csharp1(或更常见的是,Program为包含入口点的课程)。对于任何不平凡的事情,您也希望将类放在命名空间中,尽管不必这样做。

答案 2 :(得分:0)

C#区分大小写,所以:

Using System

public class csharp1
{
    private static void main()
    {
         console.writeline("yaaannn");
    }
}

应该是:

using System;

public class csharp1
{
    public static void Main()
    {
         Console.WriteLine("yaaannn");
    }
}