Ich lerne C # und bin sehr neu dazu, also verzeih mir die scheinbar dumme Frage. Ich habe einige Erfahrung in Java, und ich habe bemerkt, dass C # -Programme auch eine main()
-Methode in ihrer Hauptklasse benötigen.
Was ist, wenn ich eine Klasse erstellen möchte, die keine Hauptklasse ist, d. h. eine, die ich in eine Hauptklasse importiere?
Ich habe versucht, das zu tun, und wenn ich kompiliere (über cmd mit csc File.cs
) sagt der Compiler, dass die .exe, die es macht, keine main()
-Methode hat. Bedeutet das, dass ich falsch lag und jede Klasse eine main()
-Methode benötigt, oder dass ich sie falsch kompiliere?
Vielleicht ist das Problem im Code (da ich mich auf meine Kenntnisse der Java-Syntax verlasse), die so aussieht:
%Vor%BEARBEITEN: Ich fürchte, das ist schrecklich missverstanden. Ich frage nicht, ob die Datei eine Hauptmethode benötigt, ich frage, wie ich diese Klasse in eine andere Klasse importieren kann, weil mir klar ist, dass ich, wenn ich das tue, keine Hauptstelle haben kann (wie gesagt, ich habe einige Java-Erfahrung), aber wenn ich versuche, ohne einen zu kompilieren, sagt mir der Compiler, dass ich einen brauche.
Main
method. Wie MSDN-Status
Die Main-Methode ist der Einstiegspunkt einer C # -Konsolenanwendung oder Windows-Anwendung. (Bibliotheken und Dienste benötigen keinen Main Methode als Einstiegspunkt.). Wenn die Anwendung gestartet wird, wird der Hauptbildschirm angezeigt Methode ist die erste Methode, die aufgerufen wird.
Es kann nur einen Einstiegspunkt in einem C # -Programm geben. Wenn du mehr hast als eine Klasse, die eine Main-Methode hat, müssen Sie Ihr Programm kompilieren Mit der / main-Compiler-Option geben Sie an, welche Main-Methode verwendet werden soll der Einstiegspunkt.
Nur eine Klasse muss die Methode Main
beibehalten, die Klasse, die als Einstiegspunkt der Anwendung fungiert.
Die Signatur der Hauptmethode lautet: static void Main(string[] args)
oder static void Main()
oder static int Main(string[] args)
oder static int Main()
Weitere Informationen finden Sie in diesem Link: Main() and Command-Line Arguments (C# Programming Guide
)
Für Ihr Beispiel oben:
%Vor%Wenn Sie diese Klasse verwenden müssen, können Sie eine statische Klasse mit der main-Methode erstellen:
%Vor% static void main(string[] args)
Methode in C # -Programmen ist der Startpunkt, der ausgeführt werden soll. Wenn Sie versuchen, eine einzelne C # -Datei zu kompilieren, findet der Compiler diese Methode, um die Ausführung zu starten. Sie müssen die Methode nicht in einer Klasse erstellen, die Sie als Modell verwenden, aber Sie müssen diese Methode für ein Konsolenprogramm, WinForms usw. verwenden.
C # Anwendung muss mindestens eine Klasse mit der Main-Methode haben, damit die Ausführung von ihr aus beginnen kann. Die Anwendung kann viele Klassen haben, aber nur eine Klasse mit nur einer Main-Methode ist erforderlich.
C # library muss keine Main-Methode haben.
Versuchen Sie es mit /t:library
switch mit dem Compiler. Standardmäßig versucht es ein .exe
zu erstellen, das natürlich einen Einstiegspunkt benötigt (d. H. Eine main
-Methode). Wenn Sie zu einem .dll
kompilieren, brauchen Sie das nicht.
Aber wie HighCore vorgeschlagen hat, wenn Sie gerade lernen, verwenden Sie einfach Visual Studio (laden Sie eine der kostenlosen Versionen herunter, wenn Sie es nicht schon getan haben) und lassen Sie sich über die Compiler-Flags sorgen.
Sie benötigen nur eine main
-Methode, wenn Sie eine ausführbare Assembly (.exe) erstellen, und Sie benötigen sie nur in einer Klasse. Diese Methode ist der Standard-Einstiegspunkt, an dem die Ausführung beginnt. Sie benötigen keine main
-Methode, wenn Sie Ihren Code als Klassenbibliothek (.dll) erstellen.
C # class ohne Main () bedeutet, dass Sie es als eine Bibliothek (.dll) kompilieren können csc / target: Bibliothek YourClassFileName.cs oder csc / t: Bibliothek YourClassFileName.cs, um es als YourClassFileName.dll-Datei zu machen, und dann können Sie es in einer anderen Klassendatei mit der Main () -Methode (Einstiegspunkt) verwenden
csc /reference:IhrClassFileName.cs YourMainClassFileName.cs oder csc /r:YourClassFileName.cs YourMainClassFileName.cs
, um eine YourMainClassFileName.exe-Datei zu erstellen