Как передать / проверить указанные аргументы? - PullRequest
0 голосов
/ 05 апреля 2020

В настоящее время я пишу консольное приложение C# и хотел бы дать пользователю возможность выбрать, какую функцию выполнять. Например, когда я запускаю MyApp.exe -help, должна появиться справка, или когда я запускаю MyApp.exe -shutdown, компьютер должен выключиться. Как мне передать / проверить это?

Мой текущий код не работает:

static void Main(string[] args)
{
        if (args.Equals("-help"))
        {
            Console.WriteLine("Some help here...");
        }
}

Ответы [ 3 ]

2 голосов
/ 05 апреля 2020
    static void Main(string[] args)
    {
        ProcesArguments(args);
    }

    static void ProcesArguments(string[] parameters)
    {
        foreach (var parameter in parameters)
        {
            switch (parameter.ToLower())
            {
                case "-help":
                    DisplayHelp();
                    break;
                case "-reboot":
                    RebootComputer();
                    break;
            }
        }
    }

    static void DisplayHelp()
    {
        Console.WriteLine($"Syntax: {System.AppDomain.CurrentDomain.FriendlyName} <Parameter>");
        // ...
    }

    static void RebootComputer()
    {
        // ...
    }
2 голосов
/ 05 апреля 2020

Args - это массив, поэтому вы должны ссылаться на аргумент по его индексу. Так что args[0] соответствует первому переданному аргументу. Кроме того, сначала проверьте длину массива, чтобы убедиться, что аргумент даже был предоставлен, прежде чем пытаться получить к нему доступ.

static void Main(string[] args)
{
    if (args.Length > 0 && args[0] == "-help")
    {
        Console.WriteLine("Some help here...");
    }
}
1 голос
/ 05 апреля 2020

args - это массив, поэтому вам нужно найти в нем вхождение -help . Вы можете достичь этого, используя метод String.Contains () .

static void Main(string[] args)
{
    if (args.Contains("-help"))
    {
        Console.WriteLine("Some help here...");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...