コンソール アプリケーションでコマンドライン パラメータを読み取る最良の方法
-
01-07-2019 - |
質問
コマンドラインパラメータを読み取る 2 つの方法を以下に示します。1 つ目は、メインでパラメータを使用するのに慣れている方法です。2 つ目は、コードをレビューしているときにつまずきました。2 番目は配列内の最初の項目をパスとアプリケーションに割り当てますが、1 番目はこれをスキップしていることに気付きました。
それは単に好みなのでしょうか、それとも今は 2 番目の方法の方が良いのでしょうか?
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 の質問ではありません。
解決
2 番目の方法の方が優れています。main() の外部で使用できるため、リファクタリングするときに考えることが 1 つ少なくなります。
また、私は最初の方法でメソッドのパラメータに引数を入れる「魔法」が好きではありません。
他のヒント
ゲオプトをご存知ですか?codeplex には C# 用のポートがあります。 http://www.codeplex.com/getopt
最初の方法の方が簡単なので、より良いです。
私にとっては、最初の方法の方が直観的であるように思えます。なぜなら、それが私が C/C++ 時代からそうしてきたからです。
コマンドラインにスイッチが多すぎる場合は、Thomas が推奨する getopt を参照してください。とても便利です。ただし、同じ C# ポートは見ていません。
よろしく、
kgr
所属していません StackOverflow