首页 > 解决方案 > 错误:命名空间不直接包含字段或方法等成员

问题描述

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

Using System

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

但我得到了错误:

CS0116:命名空间不直接包含字段或方法等成员

也是在 (1,1)

我检查了这个错误:

错误“命名空间不直接包含字段或方法等成员”

在上述问题中,编译是通过“Visual Studio”完成的。所以,当通过内置编译器和命令提示符进行编译时,我不确定关于“app.config”文件的内容是否正确。

然后我检查了以下问题:

Net.Reflector 中的“命名空间不能直接包含字段或方法等成员”

但是在这里我们可以看到有一个变量没有包含在类的大括号内,但是在这段代码中没有变量超出类的限制。

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

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

标签: c#

解决方案


编译器认为:

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 命名约定,这将为您的类命名Csharp1(或者更常规Program地为包含入口点的类命名)。对于任何重要的事情,您还希望将您的类放在命名空间中,尽管您不必这样做。


推荐阅读