C# как передать различное количество аргументов командной строки консольному приложению
Здравствуйте друзья,
Мне интересно, можем ли мы передать различное количество аргументов командной строки консольному приложению.
например:
test.exe
test.exe аргумент1
test.exe арг1 арг2
test.exe аргумент1 аргумент2 значение arg3
все вышеперечисленные 4 вызова cmdprompt должны работать.
Возможно ли это?
я попробовал опцию params, как показано ниже, но она не удалась с помощью Array out of bound error.
Мы можем достичь этого любым другим способом?
Перегрузка функций также работает, но я не предпочитаю этого, так как не хочу копировать одну и ту же логику снова и снова для разного количества аргументов.
Что я уже пробовал:
<pre lang="c#"> static void Main(params string[] args) { try { int iResult = 0; if (args.Length == 0) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } else { for (int i = 0; i < args.Length; i++) { mainObject.lstArguements.Add(args[i]); } string argHTTPS = args[0]; string argCustDBName = args[1]; } catch (Exception ex) { MessageBox.Show("FATAL ERROR: " + ex.Message); } }
Его неудача где - то в этом утверждении
строка argCustDBName = args[1];
когда я передаю только 1 аргумент. когда я передаю 2 аргумента, это работает. Можем ли мы как-то преодолеть это, чтобы поддержать динамическое число аргументов?
я хочу, чтобы когда пользователь передает только 1 arg, то он должен сохранить в [0] и [1] должен быть пустым или нулевым.
А когда пользователь передает только 2 arg, то он должен сохранять как в [0], так и в [1]
и если пользователь передает 3 arg то он должен сохранить в [0], [1], [2].
Пожалуйста помочь