Лучший способ прочитать параметры командной строки в консольном приложении

StackOverflow https://stackoverflow.com/questions/82838

  •  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 #.

С уважением,

кгр

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top