Frage

Kurze Frage, gibt es eine Möglichkeit, Ihre Haupt-Methode aufrufen, was Sie wollen? Oder hat es muss heißen "Main ()"?

War es hilfreich?

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

aussehen

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:

Main (C #)

Von „ Main () und anderen Methoden (C # vs Java) ":

  

Jede C # Anwendung ein einzelnes Hauptverfahren Angabe enthalten muss, wo die Programmausführung zu beginnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top