Аргументы консольного приложения, как аргументы передаются методу Main - PullRequest
25 голосов
/ 27 мая 2011

Это будет вопрос от начинающего c #. Когда я создаю консольное приложение, я получаю метод Main с параметром args в виде строки массива. Я не понимаю, как этот метод вызывается системой и как аргументы передаются в метод Main. Может кто-нибудь мог объяснить? Является ли метод Main переопределенным для некоторого консольного класса?

namespace ConsoleApplication1
{
    class Program
    {    
        static void Main(string[] args)
        {    
        }
    }
}

Ответы [ 11 ]

0 голосов
/ 27 мая 2011

Основной метод механизма выполнения выглядит примерно так: int main(int argc, char *argv[]), где argc - это число аргументов, а argv - массив указателей на каждый из них.Среда выполнения преобразует это в форму, более естественную для c #.

До вызова этого основного метода все написано на ассемблере.Он имеет доступ к аргументам командной строки (поскольку операционная система делает это доступным для каждого запускаемого процесса), но этот язык ассемблера должен преобразовать одну строку полной командной строки в несколько подстрок (используя пробелы для их разделения), прежде чемготов передать их в main ().

...