Для консольного приложения C#, если я укажу следующее, мои параметры будут интерпретированы как одно и то же значение:
myapp.exe "0" 0
И просто быть 0
с длиной 1 при проверке.
Мне было интересно, есть ли способ определить число в кавычках по сравнению с необработанным числом в командной строке для консольных приложений С# без принудительного экранирования кавычек для пользовательского ввода.
Я знаю, что ты можешь это сделать,
myapp.exe \"0\" 0
И возвращайте "0" 0
при проверке аргументов командной строки с помощью Environment.GetCommandLineArgs()
, как в примере ниже.
using System;
using System.Collections.Generic;
using System.Linq;
namespace cl_app
{
class Program
{
static void Main(string[] args)
{
List<string> arg_list = Environment.GetCommandLineArgs().ToList();
foreach(var arg in arg_list)
{
Console.WriteLine(arg);
}
}
}
}
Возможно ли это сделать без экранирования кавычек? Если нет, то является ли это общим ограничением командной строки Windows?