Подтвердить что ты не робот

С# Способ называть метод Main() самостоятельно?

Быстрый вопрос, есть ли способ вызвать ваш основной метод, как вам нравится? Или его нужно называть "Main()"?

4b9b3361

Ответ 1

Обратите внимание, что это соглашение С#, а не соглашение .NET Runtime. Вы можете назвать свой метод любым, что вы хотели бы в IL:

.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
        }
    }
}

Ответ 2

Вы можете назвать свой основной метод чем-то другим, но он не будет вызываться как первый метод в вашем приложении, если он не будет вызван Main. Есть еще несколько требований и вещей, которые необходимо учитывать. Из MSDN:

  • Основной метод - это точка входа вашей программы, в которой начинается и заканчивается управление программой.
  • Он объявляется внутри класса или структуры. Он должен быть статическим, и он не должен быть общедоступным.
  • Он может иметь тип void или int return.
  • Основной метод может быть объявлен с параметрами или без них.
  • Параметры могут считываться как аргументы командной строки с нулевой индексацией.
  • В отличие от C и С++, имя программы не рассматривается как первый аргумент командной строки.

Ответ 3

Я не верю, что есть способ сделать это на стороне С#, но если вы хотите отредактировать свой IL, достаточно легко войти и добавить .entrypoint к функции в IL. Проверьте запись CLI в википедии.

Ответ 5

Он должен называться Main().

Ответ 6

Его нужно называть Main(), поскольку он является точкой входа для приложения.

Название и ограничения определяются Framework. Здесь страница MSDN для справки:

Main (С#)

Ответ 7

Он должен называться Main.

Если вы действительно этого захотите, вы можете создать свой собственный метод и просто называть его как единственную строку кода в Main.

public static void Main(String[] args)
{
    Mane(args);
}

Ответ 8

Нет... Главная - стандартная. Что вы можете сделать, это изменить класс, в котором размещается метод Main из свойства проекта "Объект запуска"

Но на самом деле, зачем вам это нужно? все знают, что это главное... так что вы будете путать других разработчиков, которые могут смотреть на ваш код

Ответ 9

От " Main() и другие методы (С# vs Java)":

Каждое приложение С# должно содержать единственный основной метод, определяющий, где должно начинаться выполнение программы.