C# Способ назвать Основным () метод собой?

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

12
задан Chilln 9 April 2010 в 19:36
поделиться

9 ответов

Обратите внимание, что это соглашение C #, а не соглашение среды выполнения .NET. Вы можете назвать свой метод как хотите в 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
        }
    }
}
18
ответ дан 2 December 2019 в 04:42
поделиться

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

  • Метод Main - это точка входа в вашу программу, с которой начинается и заканчивается управление программой.
  • Он объявляется внутри класса или структуры. Он должен быть статичным и не должен быть публичным.
  • Он может иметь возвращаемый тип void или int.
  • Метод Main может быть объявлен с параметрами или без них.
  • Параметры могут быть прочитаны как аргументы командной строки с нулевым индексом.
  • В отличие от C и C ++, имя программы не рассматривается как первый аргумент командной строки.
5
ответ дан 2 December 2019 в 04:42
поделиться

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

3
ответ дан 2 December 2019 в 04:42
поделиться

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

1
ответ дан 2 December 2019 в 04:42
поделиться

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

Имя и ограничения определяются Framework. Вот страница MSDN для справки:

Main (C#)

1
ответ дан 2 December 2019 в 04:42
поделиться

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

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

public static void Main(String[] args)
{
    Mane(args);
}
1
ответ дан 2 December 2019 в 04:42
поделиться

Нет ... Главное стандартно. Что вы можете сделать, так это изменить класс, в котором размещен метод Main, в параметре «Startup object» свойства проекта

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

1
ответ дан 2 December 2019 в 04:42
поделиться

From " Main () and Other Методы (C # против Java) ":

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

1
ответ дан 2 December 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: