Оператор переключения со строками C # - PullRequest
4 голосов
/ 14 ноября 2009

Мне нужно написать что-то, что получит начальные аргументы, а затем сделать что-то для этих начальных аргументов, и я подумал, что switch будет хорошим, но он принимает только для целых и должен быть для строки

Это не настоящий код, но я хочу знать, как заставить что-то подобное работать

namespace Simtho
{
    class Program
    {
        static void Main(string[] args)
        {
            switch (Environment.GetCommandLineArgs())
            {

                case "-i":
                    Console.WriteLine("Command Executed Successfully");
                    Console.Read;
                    break;
            }
        }

    }
}

Ответы [ 4 ]

8 голосов
/ 14 ноября 2009

Environment.GetCommandLineArgs () возвращает массив строк. Массивы не могут быть включены. Попробуйте перебрать элементы массива следующим образом:

namespace Simtho
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (string arg in Environment.GetCommandLineArgs())
            {
                switch (arg)
                {

                    case "-i":
                        Console.WriteLine("Command Executed Successfully");
                        Console.Read();
                        break;
                }
            }
        }
    }
}
5 голосов
/ 14 ноября 2009

Как насчет этого?

string[] args = Environment.GetCommandLineArgs();

if (args.Contains("-i"))
{
    // Do something
}
0 голосов
/ 14 ноября 2009

Environment.GetCommandLineArgs () возвращает string[]

Вы не можете включить строковый массив. Возможно, вы захотите проверить, содержит ли массив определенные значения.

0 голосов
/ 14 ноября 2009

Environment.GetCommandLineArgs () возвращает массив строк?

Возможно, я ошибаюсь, но внутренне включаю строки, преобразованные в последовательность if-else ...

...