C # Way selbst Main () -Methode zu nennen?
Frage
Kurze Frage, gibt es eine Möglichkeit, Ihre Haupt-Methode aufrufen, was Sie wollen? Oder hat es muss heißen "Main ()"?
Lösung
Hinweis ist dies eine C # Konvention, keine .NET Runtime-Konvention. Sie können Ihre Methode nennen, was Sie in IL möchten:
.module Mane.exe
.subsystem 3
.corflags 9
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89)
.ver 2:0:0:0
}
.assembly Mane
{
.custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 )
.custom instance void [mscorlib]System.CLSCompliantAttribute::.ctor(bool) = ( 01 00 01 00 00 )
.custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 07 31 2E 30 2E 30 2E 30 00 00 )
.custom instance void [mscorlib]System.Resources.NeutralResourcesLanguageAttribute::.ctor(string) = ( 01 00 05 65 6E 2D 55 53 00 00 )
.permissionset reqmin
= {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'Execution' = bool(true)}}
.hash algorithm 0x00008004
.ver 1:0:0:0
}
.namespace Mane
{
.class private abstract auto ansi sealed beforefieldinit Program extends [mscorlib]System.Object
{
.method private hidebysig static void Mane() cil managed
{
.entrypoint
.maxstack 1
ldstr "Hello, World!"
call void [mscorlib]System.Console::WriteLine(class System.String)
ret
}
}
}
Andere Tipps
Sie können Ihre Hauptmethode etwas anderes nennen, aber es wird nicht als das erste Verfahren in der Anwendung aufgerufen werden, es sei denn, es Main
genannt wird. Es gibt ein paar andere Anforderungen und Dinge zu beachten Sie. Aus MSDN :
- Die Main-Methode ist der Einstiegspunkt des Programms, in dem die Programmsteuerung beginnt und endet.
- Es befindet sich in einer Klasse oder Struktur deklariert. Es muss statisch sein und es sollte nicht öffentlich.
- Es kann entweder eine Lücke oder int Rückgabetyp.
- Die Main-Methode kann mit oder ohne Parameter deklariert werden.
- Parameter kann als Null-indexierten Befehlszeilenargumente gelesen werden.
- Im Gegensatz zu C und C ++, der Name des Programms nicht als erstes Befehlszeilenargument behandelt wird.
Ich glaube nicht, gibt es einen Weg, um es auf der C # Seite der Dinge zu tun, aber wenn Sie bereit sind, Ihre IL zu bearbeiten ist es einfach genug, um zu gehen und zu der Funktion in IL .entrypoint. Schauen Sie sich den CLI-Eintrag auf Wikipedia.
Es muss heißen Main ().
Es muss Haupt genannt werden.
Wenn Sie wirklich wollen, könnten Sie Ihre eigene Methode erstellen, und es nur als ein-und-nur rufen Codezeile in Main.
public static void Main(String[] args)
{
Mane(args);
}
Nope ... Haupt ist Standard. Was können Sie tun, ist aber die Klasse ändern, dass Hosts die Main-Methode aus der „Startobjekt“ Projekt-Eigenschaft
Aber wirklich, warum sollte man das wollen? jeder weiß, dass es Haupt ... so dass Sie andere Entwickler verwirrend sein würden, die an Ihrem Code
aussehenNein, hat es Haupt genannt werden. See Main () und Befehlszeilenargumente (C # -Programmierhandbuch) .
Es muss genannt Main()
da es der Einstiegspunkt für die Anwendung ist.
Der Name und die Einschränkungen werden durch den Rahmen definiert. Hier ist die MSDN-Seite als Referenz:
Von „ Main () und anderen Methoden (C # vs Java) ":
Jede C # Anwendung ein einzelnes Hauptverfahren Angabe enthalten muss, wo die Programmausführung zu beginnen.