Обратная косая черта и кавычки в аргументах командной строки

Является ли следующее поведение какой-то функцией или ошибкой в C # .NET?

Тестовое приложение:

using System;
using System.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Arguments:");
            foreach (string arg in args)
            {
                Console.WriteLine(arg);
            }

            Console.WriteLine();
            Console.WriteLine("Command Line:");
            var clArgs = Environment.CommandLine.Split(' ');
            foreach (string arg in clArgs.Skip(clArgs.Length - args.Length))
            {
                Console.WriteLine(arg);
            }

            Console.ReadKey();
        }
    }
}

Запустите его с аргументами командной строки:

a "b" "\\x\\" "\x\"

В результате я получаю:

Arguments:
a
b
\\x\
\x"

Command Line:
a
"b"
"\\x\\"
"\x\"

Отсутствуют обратная косая черта и не удаленная кавычка в аргументах, передаваемых методу Main (). Какой правильный обходной путь, кроме анализа вручнуюEnvironment.CommandLine?

Ответы на вопрос(5)

Ваш ответ на вопрос