nickola105
@nickola105
начинающий

Как считать аргументы командной строки?

В тестовом задании есть вот такой абзац:
Имя входного, выходного файла, режим сортировки, а так же тип содержимого задаются при
запуске через аргументы командной строки. Примеры запуска из командной строки для Windows:
sort-it.exe in.txt out.txt -i -a (для целых чисел по возрастанию)
sort-it.exe in.txt out.txt -i -d (для целых чисел по убыванию)
sort-it.exe in.txt out.txt -s -a (для строк по возрастанию)

я сделал следующим образом:
static void Main(string[] args)
        {
            string fromfile = args[1];
            string tofile = args[2];
            string typedata = args[3];
            string sortingmode = args[4];
....................


когда запускаю программу из командной строки
sort-it.exe in.txt out.txt -i -a
то выходит аварийное завершение с ошибкой что индекс находился вне границ массива.
Что я делаю не так?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
Rou1997
@Rou1997
Во-первых, индексация массивов в C# начинается не с 1, а с 0, могли бы убедиться что это верно и для аргументов, обнаружив, что args[1] возвращает второй, а не первый аргумент.
Во-вторых, по-правильному в любом случае нужна проверка на наличие каждого аргумента, его может и не быть, программа должна не "вылетать", а выдавать "user-friendly" описание ошибки и завершаться.

В тестовом задании

Тестовое задание при учебе или при устройстве на работу?
Если второе, то... хм, однако. :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nickola105
@nickola105 Автор вопроса
начинающий
ну конечно, он не берет файл.exe за элемент масива, потому
string fromfile = args[0];
string tofile = args[1];
string typedata = args[2];
string sortingmode = args[3];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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