繁体   English   中英

c# 中的同一 class 中是否可以有多个具有不同声明的 Main 方法

[英]Can there be multiple Main methods with different declarations in same class in c#

我们知道Main方法是程序的入口点,如果我们指定方法的编译器StartupObject ,我们可以在不同的类中使用多个 Main 方法。 如果我们在同一个 class 中使用不同声明的多个 Main 方法会怎样? 我们可以在方法级别指定编译器吗?

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Test");
        }
        static void Main()
        {
            Console.WriteLine("Test 1");
        }
    }
}

更新:output 是一个错误 CS0017 程序定义了多个入口点。 我的主要疑问是我们是否可以在方法级别指定 StartupObject 或是否存在任何其他属性来执行此操作。?

谢谢

您可以定义多个类型,每个类型都有一个Main方法,并且您可以使用编译标志/main指定将哪些类型视为入口点。

据我所知,您不能在一种类型中有两个不同的重载Main方法并告诉编译器使用哪种方法。 如果目标是让一个Main接受输入 arguments 和一个无参数,则一种解决方法可能是使用params关键字有效地使参数可选。

class Program 
{
  static void Main(params string[] args)
  {
    if (args.Length > 0)
    {
      Console.WriteLine("Test");
    }
    else
    {
      Console.WriteLine("Test 1");
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM