2013-07-12 46 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種方法具有相同簽名。

相關問題