以下是我试图通过命令“ 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
但是在这里我们可以看到,有一个变量没有包含在类的括号内,但是在此代码中,没有任何变量超出了类的范围。
所以,我不知道是什么导致了这个问题。
我以为“使用系统”后缺少分号,但这也引发了相同的错误。
答案 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");
}
}