【问题标题】:The program does not contain a static main method suitable as an entry point [duplicate]该程序不包含适合作为入口点的静态 main 方法[重复]
【发布时间】:2021-10-02 10:15:28
【问题描述】:

大家好,我是初学者,

我正在尝试创建一个函数来将字符串转换为整数并将整数转换为字符串,我该怎么做?一旦我运行程序,我就会收到以下错误“程序不包含适合作为入口点的静态主方法”我该如何解决?

提前感谢大家!

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

namespace Exercise
{

    static class Program
    {

        public static int Conversion(int num1, int num2)
        {
            
            num1 = 999; 
            num2 = 123;
        
            int number = Convert.ToInt32("999");
            int number2 = Convert.ToInt32("123");

            return number + number2;

        }
            static public int Main(int number, int number2) {


                Conversion(number, number2);

                Console.WriteLine(number + " and " + number2);

                return number + number2;

            }
        }
    }   

【问题讨论】:

  • Main 必须要么是无参数的,要么只有一个 string[] 类型的参数。您不能将其签名更改为(int, int),如果您想在应用程序中使用它们,则必须从传递的string[] 中解析这些 CLI 参数。
  • @404: “为什么因为不可重现或拼写错误而关闭?” 因为未能正确声明 Main() 方法,或未能正确配置项目使用Main() 方法,两者都完全属于本网站使用的“错字”类别。

标签: c# compiler-errors type-conversion main


【解决方案1】:

C# 要求您拥有不带参数的 public static int Main 方法或 string[]

将您的代码更改为这样的代码将起作用:

static public int Main(string[] args)
{
    int number = int.Parse(args[0]);
    int number2= int.Parse(args[1]);

    Conversion(number, number2);

    Console.WriteLine(number + " and " + number2);

    return number + number2;
}

您现在有一个有效的 Main 签名,您可以解析命令行上传递的参数并假设它们是整数。如果您传入其他内容(如字符串),这当然会失败,因此您应该添加错误处理,但这说明了这个想法。

然后您可以像这样开始您的新程序:

dotnet run -- 3 5

【讨论】:

  • 不要忘记检查 args 长度,并喜欢 TryParse 或任何验证过程。
猜你喜欢
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多