2013-07-12 24 views
12

是否可以在C#控制台应用程序中使用多个main()方法(使用相同的参数)?如果是这样,怎么样?在C#程序中可能有多个main()方法吗?

+0

为什么你想要多个主? –

+0

看看这篇文章http://raviranjankr.wordpress.com/2011/05/20/multiple-main-method-in-c/ – mck

+0

第二个人会做什么? – Mehrdad

回答

17

您可以有多个主方法,您可以指定哪个用作应用程序的入口点你的编译器。请参见this链接,详细

例子:

using System; 
using System.Collections.Generic; 
using System.Text; 


    namespace Multiple_MainClasses 
    { 
     class A 
     { 
      static void Main(string[] args) 
      { 
       Console.WriteLine("I am from Class A"); 
       Console.ReadLine(); 
      } 
     } 
     class B 
     { 
      static void Main(string[] args) 
      { 

       Console.WriteLine("I am from Class B"); 
       Console.ReadLine(); 
      } 
     } 
    } 

当你运行这段代码,你会得到编译错误。要解决到项目的解决方案资源管理器或按Ctrl + Alt + L特性,去哪个要执行的应用程序选项卡,选择类与方法,如下图所示:

enter image description here

+0

如果我们在同一个班级中有两种主要方法,该怎么办?像main()和main(string [] args) –

+0

@TusharKukreti这是一个编译错误。 Main方法仅在签名与下面2中的任何一个匹配且方法为静态时被视为入口点。Main()[Main(String []) 2. Main() – Jaguar

3

主要方法是您的入口点到您的应用程序。根据其他人提供的文章,它在定义多个Main方法时在语法上是有效的,但在运行应用程序时必须选择一个主要方法。我认为创建单个主函数并通过使用命令行参数使其更灵活更有意义。

+0

-1有可能有多个市电,所以这个答案有错误的信息。 – Katu

+0

您添加的文章不允许同时有两条市电。这似乎是一个编译器技巧,允许您定义两个,但只在编译时加入一个。我不认为有两个入口点进入你的应用程序 – TGH

+0

你可以有尽可能多的主线,因为你有班级。 '投票 - ;' – ChiefTwoPencils

4

是 - 你可以自定义指定入口点,如果你有多个主要方法。 csc /main包含的信息:

此选项指定包含程序入口点的类,如果多于一个类包含Main方法的话。

csc MyClssesWithMain.cs /main:OneOfTheClasses 

注:Main方法都必须在单独的类,你不能在同一类2种方法具有相同签名。

相关问题