Backslash e citação nos argumentos da linha de comando

O comportamento a seguir é um recurso ou um bug no C # .NE

plicação @Test:

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();
        }
    }
}

Execute-o com argumentos de linha de comando:

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

No resultado, recebo:

Arguments:
a
b
\\x\
\x"

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

Faltam barras invertidas e aspas não removidas nos argumentos passados para o método Main (). Qual é a solução correta, exceto a análise manual deEnvironment.CommandLine?

questionAnswers(10)

yourAnswerToTheQuestion