<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Работа с аргументами командной строки в C#

Работа с аргументами командной строки в C#

Как известно с любой компьютерной программой можно работать посредством нескольких программных интерфейсов: с помощью графического интерфейса, веб-интерфейса или интерфейса командной строки.

В этой статье мы рассмотрим, как работать с аргументами командной строки в C#. Аргументы командной строки - это значения, передаваемые консольным программам, обычно, через терминал.

Мы можем передать аргументы командной строки в метод Main, объявив этот метод с типом параметра string[].

В первом примере мы передаем аргументы командной строки методу Main.


namespace MyRusakov.App
{
    public class Program
    {
        // все параметры, переданные программе попадут в массив args
        public static void Main(string[] args)
        {
            foreach (string arg in args)
            {
                Console.WriteLine(arg);
            }
        }
    }
}

Выполним программу и посмотрим на вывод в консоли:


$ dotnet run This Is Myrusakov Post
This 
Is 
Myrusakov 
Post

C# Метод Environment.GetCommandLineArgs

Метод Environment.GetCommandLineArgs возвращает массив строк, содержащий аргументы командной строки для текущего процесса. Кроме того, данный метод также возвращает полный путь к запущенной программе:


$ dotnet run This Is Myrusakov Post
C:\Users\MyRusakov\Documents\CSharpCmdArgs\bin\Debug\net6.0\CSharpCmdArgs.dll
This 
Is 
Myrusakov 
Post

Свойство C# Environment.CommanLine

Свойство C# Environment.CommanLine возвращает строку, содержащую аргументы командной строки.


using System;
using System.Linq;


namespace MyRusakov.App
{
    public class Program
    {
        public static void Main()
        {
            // строка вместе с путем к программе и переданными ей параметрами
            string args_str = Environment.CommandLine;
            Console.WriteLine(args_str);

            // делим всю строку по символу пробела
            string[] arg_values = args_str.Split(" ");

            try
            {
                var formatted = string.Join(",", arg_values.Skip(1).Select(str => $" -[str]- "));
                Console.WriteLine($"Итоговая строка: {formatted}");
                return 0;
            }
            catch (FormatException e)
            {
                Console.WriteLine("Ошибка: " + e.Message);
                return 1;
            }
        }
    }
}

C# CommandLineParser

При работе с аргументами командной строки часто приходится с их помощью задавать различные настройки работы программы. Для упрощения этой работы создано множество различных библиотек, одной из таких библиотек является C# библиотека CommandLineParser.

Добавим эту библиотеку в проект:

C:> dotnet add package CommandLineParser


using CommandLine;

namespace MyRusakov.App
{
    /**
        С помощью этого класса определяем набор аргументов командной строки, 
        которые принимает наше приложение
     */
    class CLIOptions
    {
        [Option("paths")]
        public IEnumerable<string>? Paths { get; set; }
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            // разбираем аргументы, переданные программе
            var parser =  Parser.Default.ParseArguments<CLIOptions>(args);

           parser.WithParsed<CLIOptions>(opt =>
            {
                if (opt.Paths != null)
                {
                    foreach(var path in paths)
                    {
                        Console.WriteLine($"Путь {path}");
                    }
                }
                else
                {
                    Console.WriteLine("Передайте программе список аргументов");
                }
            });
        }
    }
}

Как видно из примера выше программа определяет аргумент командной строки --paths, который принимает список путей. Пример работы программы ниже:


C:\> dotnet run --paths C:\Projects\TestEx1\passwords1.txt C:\Projects\TestEx1\passwords2.txt

Путь C:\Projects\TestEx1\passwords1.txt 
Путь C:\Projects\TestEx1\passwords2.txt

Таким образом в данной статье мы рассмотрели с Вами работу с аргументами командной строки в C#, а также одну из библиотек, которая позволяет эту работу автоматизировать.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.