编译和运行代码时出现简单的C#错误

时间:2013-03-28 05:25:34

标签: c# visual-studio

我正在尝试通过观看教程来学习C#,当我尝试重命名我的课程时,它给了我这个

所以这第一个错误基本上是当我创建一个新的控制台解决方案,然后声明一个类并给它一个名字,然后尝试写出它给我两个错误。

  

![1ST:错误1无效的令牌'('在类,结构或接口成员中   声明C:\ Users \ Alan \ AppData \ Local \ Temporary   Projects \ ConsoleApplication1 \ Program.cs 10 23 ConsoleApplication1

     

2ND:错误2类型中不存在类型名称“Writeline”   'System.Console'C:\ Users \ Alan \ AppData \ Local \ Temporary   Projects \ ConsoleApplication1 \ Program.cs 10 13 ConsoleApplication1

我点击了一个全部保存并将其保存到我桌面上的一个文件夹中,我打算放入所有C#文件,但是我得到了这些错误,当我开始一个新文件时,清理它并编写控制台命令并构建它不是给我任何错误。

是否需要构造函数或我需要按特定顺序保存文件或什么? ] 1

4 个答案:

答案 0 :(得分:5)

看起来你在方法体外调用了System.Console.WriteLine。编译器认为您正在尝试引用一个不存在的类型,并且它还告诉您(在代码文件中的特定点上不合法。

您可能有一个类似于

的类定义
class Program
{
     System.Console.WriteLine("hello world");
}

您需要的是一个看起来更像

的类定义
class Program
{
     public static void Main(string[] args)
     {
          System.Console.WriteLine("hello world");
     }
}

答案 1 :(得分:2)

Anthony Pegram的回答是正确的。在任何相对c#文件的顶部添加指令using System;,允许编译器省略在System.Console.WriteLine()前面具有方法命名空间的 System。部分的需要。

但是,如果控制台解决方案名为 TestSolution ,控制台应用程序项目的名称空间为 TestSolution.Console ;仍然需要System.Console.WriteLine()次来电前面的系统。声明。

这是由于编译器对于命名空间中结尾的控制台部分的模糊性。名为 TestSolution.TestConsole 的控制台项目不会遇到命名空间冲突,除非正在编写的类的名称是控制台

在为.NET应用程序构建和命名库时,请注意名称空间的潜在命名冲突。

答案 2 :(得分:0)

你有几个问题。

首先,您尝试在文件的无效部分中调用Console.WriteLine()。您需要声明MethodConstructor并将此调用置于其中。

构造函数示例:

public class Person
{
    public Person()
    {
        Console.WriteLine("Hello");
    }
}

方法示例:

public class Person
{
    public void SayHello()
    {
        Console.WriteLine("Hello");
    }
}

您的其他问题是您的“WriteLine”大写不正确。

代码应为:

Console.WriteLine("Test");

http://msdn.microsoft.com/en-us/library/system.console.writeline.aspx

答案 3 :(得分:0)

似乎你已经吹走了Main()方法。此外,你不应该(不能,我猜)只是在一个类中浮动一个方法调用 - 它必须在方法或构造函数中。

尝试使用以下内容替换namespace ConsoleApplication1中的内容:开始使用

class Program
{
    static void Main(string[] args)
    {
        Person alan = new Person();
        alan.PersonName = "Alan";

        Console.WriteLine("Hi " + alan.PersonName);
        Console.ReadLine();
    }
}

class Person
{
    public string PersonName { get; set; }
}

PS。你可能应该将Person放在一个单独的文件中(例如Person.cs),但是为了开始,这应该......但不是理想的最终状态。