在控制台应用程序中读取命令行参数的最佳方法
-
01-07-2019 - |
题
以下是读取命令行参数的两种方法。第一个是我习惯在 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# 端口。
问候,
千克力
不隶属于 StackOverflow