“主要构造函数体不允许”是什么意思?

时间:2015-08-01 03:39:40

标签: c#

我正在尝试在终端中编译并运行这个C#程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


public class largestNumber
{
    public static void Main(string[] args);
    {
        int UserNumber1 = int.Parse(Console.ReadLine("Enter a number:"));
        int UserNumber2 = int.Parse(Console.ReadLine("Enter a second number:"));
        int UserNumber3 = int.Parse(Console.ReadLine("Enter a third number:"));

        Console.WriteLine("Your numbers were, " + UserNumber1 + ", " + UserNumber2 + ", and " + UserNumber3);
    }
}

然而,当我这样做时,出现了这个错误:

Number.cs(11,2): error CS9010: Primary constructor body is not allowed

有人可以解释错误所指的内容吗?

1 个答案:

答案 0 :(得分:2)

您的应用存在多个问题:

  • 方法实现最后不需要;

  • Console.ReadLine不接受任何参数。它的唯一目的是阅读控制台,因此您应该使用Console.WriteLine来提出问题,例如"输入数字"。

  • 您应该将您的类包装在命名空间中(通常命名为.csproj项目)

请遵循C#约定,类名为PascalCase,变量为camelCase。当您共享代码时,其他开发人员可以更轻松地阅读和理解代码。

所以看起来应该是这样的:

using System;

namespace MyApp
{
    public class LargestNumber
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Enter a number:");
            int userNumber1 = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter a second number:");
            int userNumber2 = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter a third number:");
            int userNumber3 = int.Parse(Console.ReadLine());

            Console.WriteLine("Your numbers were, " + userNumber1 + ", " + userNumber2 + ", and " + userNumber3);
        }
    }
}

请注意我删除了一些无用的using语句。

您还应该将文件Number.cs重命名为LargestNumber.cs,通常希望您的文件与您的文件同名。

另外,即使是通过复制粘贴代码,我也没有得到与您相同的编译错误。

在VS2015下我有"非抽象和非外部方法必须声明一个主体" (由额外的分号引起)和"方法ReadLine有0个参数但是用1个参数调用"。您获得的错误可能是由代码中其他位置的语法错误引起的。