2013-07-12 6 views

Antwort

17

Sie können mehr als eine Hauptmethode haben, die Sie als Eingangspunkt für die Anwendung angeben können Ihr Compiler .. Siehe this Link für mehr Details

Beispiel:

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(); 
      } 
     } 
    } 

Wenn Sie diesen Code ausführen, werden Sie Kompilierungsfehler erhalten. So beheben Sie gehen zu Projekteigenschaften in Lösung Explorer oder drücken Sie Strg + Alt + L, gehen Sie auf Anwendung Registerkarte und wählen Klasse mit der Methode, die Sie ausführen möchten, wie unten dargestellt:

enter image description here

+0

Was ist, wenn wir zwei Hauptmethode in derselben Klasse haben? wie .. main() und main (string [] args) –

+0

@TusharKukreti Dies ist ein Kompilierungsfehler. Die Main-Methode wird nur als Einstiegspunkt betrachtet, wenn die Signatur mit einer der folgenden 2 übereinstimmt und die Methode statisch ist. 1. Main (String []) 2. Main() – Jaguar

3

Die Hauptmethode ist Ihr Einstiegspunkt in Ihre Anwendung. Basierend auf Artikeln, die von anderen bereitgestellt werden, ist es syntaktisch gültig, mehrere Main-Methoden zu definieren, Sie müssen jedoch eine einzige Hauptmethode auswählen, wenn Sie Ihre App ausführen. Ich denke, es macht mehr Sinn, eine einzige Hauptfunktion zu erstellen und sie flexibel zu machen, indem Sie Befehlszeilenargumente usw. verwenden.

+0

-1 Es ist möglich, mehrere Hauptleitungen zu haben, daher hat diese Antwort falsche Informationen. – Katu

+0

Der Artikel, den Sie hinzugefügt haben, erlaubt nicht zwei Hauptleitungen gleichzeitig. Es scheint ein Compiler-Trick zu sein, der es Ihnen erlaubt, zwei zu definieren, aber nur einen zur Kompilierungszeit einzubauen. Ich sehe das nicht als zwei Einstiegspunkte in Ihre App – TGH

+0

Sie könnten an so vielen Hauptleitungen haben, wie Sie Klassen haben. 'votes -;' – ChiefTwoPencils

4

Ja - Sie können benutzerdefinierte angeben Einstiegspunkt, wenn Sie mehrere Main-Methoden haben. csc /main enthält Informationen dazu:

Diese Option gibt die Klasse an, die den Einstiegspunkt für das Programm enthält, wenn mehrere Klassen eine Main-Methode enthalten.

csc MyClssesWithMain.cs /main:OneOfTheClasses 

Hinweis: Main Methoden haben in getrennten Klassen sein, wie Sie nicht zwei Methoden mit identischer Signatur in der gleichen Klasse haben können.

Verwandte Themen