Лучший способ прочитать параметры командной строки в консольном приложении
-
01-07-2019 - |
Вопрос
Ниже приведены два способа чтения параметров командной строки.Первый - это способ, который я привык видеть, используя параметр в main.Второе, на что я наткнулся при просмотре кода.Я заметил, что второй присваивает первый элемент в массиве пути и приложению, но первый пропускает это.
Это просто предпочтение или второй способ сейчас лучше?
Sub Main(ByVal args() As String)
For i As Integer = 0 To args.Length - 1
Console.WriteLine("Arg: " & i & " is " & args(i))
Next
Console.ReadKey()
End Sub
Sub Main()
Dim args() As String = System.Environment.GetCommandLineArgs()
For i As Integer = 0 To args.Length - 1
Console.WriteLine("Arg: " & i & " is " & args(i))
Next
Console.ReadKey()
End Sub
Я думаю, что то же самое можно сделать в C #, так что это не обязательно вопрос vb.net.
Решение
Второй способ лучше, потому что его можно использовать вне main(), поэтому при рефакторинге становится на одну вещь меньше, о чем нужно думать.
Также мне не нравится "магия", которая помещает аргументы в параметр метода для первого способа.
Другие советы
Вы знаете getopt?В codeplex есть порт для C #: http://www.codeplex.com/getopt
Первый способ лучше, потому что он проще.
Мне первый способ кажется более интуитивно понятным, потому что именно так я это делаю со времен работы на C / C ++.
Если в вашей командной строке слишком много переключателей, пожалуйста, взгляните на getopt, который рекомендует Томас.Это очень полезно.Однако я не видел аналогичного порта на C #.
С уважением,
кгр