20

下面是两种读取命令行参数的方法。第一种是我习惯于在 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 的问题。

4

4 回答 4

22

第二种方法更好,因为它可以在 main() 之外使用,所以当你重构时,它就少了一件需要考虑的事情。

另外,我不喜欢第一种方式将 args 放入方法参数的“魔术”。

于 2008-09-17T12:58:10.203 回答
3

你知道getopt吗?在 codeplex 上有一个 C# 端口:http: //www.codeplex.com/getopt

于 2008-09-17T13:05:27.300 回答
2

第一种方法更好,因为它更简单。

于 2008-09-17T13:01:25.923 回答
1

对我来说,第一种方法似乎更直观,因为这就是我从 C/C++ 时代以来一直在做的事情。

如果您的命令行有太多开关,请查看 Thomas 推荐的 getopt。它非常有用。不过,我还没有看过相同的 C# 端口。

问候,

公斤

于 2008-12-15T14:15:39.633 回答