以下是两种读取命令行参数的方法。第一个是我习惯于在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问题。
答案 0 :(得分:21)
第二种方式更好,因为它可以在main()之外使用,所以当你重构它时,可以少考虑一下。
此外,我不喜欢将args放在方法参数中的第一种方式的“魔法”。
答案 1 :(得分:3)
答案 2 :(得分:2)
第一种方式更好,因为它更简单。
答案 3 :(得分:1)
对我而言,第一种方式似乎更直观,因为这就是我自C / C ++日以来一直在做的事情。
如果您的命令行有太多交换机,请查看Thomas推荐的getopt。这非常有用。我没有看过同样的C#端口。
此致
KGR