以下是读取命令行参数的两种方法。第一个是我习惯在 main.c 中使用参数的方式。第二个是我在检查代码时偶然发现的。我注意到第二个将数组中的第一项分配给路径和应用程序,但第一个跳过了这一点。

这只是偏好还是现在第二种方法更好?

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() 之外使用,因此当您重构时,就少了一件需要考虑的事情。

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

其他提示

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

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

对我来说,第一种方法似乎更直观,因为从 C/C++ 时代起我就一直这样做。

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

问候,

千克力

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top