20

以下に、コマンドライン パラメータを読み取る 2 つの方法を示します。1 つ目は、メインでパラメーターを使用するのに慣れている方法です。コードをレビューしているときに偶然見つけた 2 つ目。2 番目は配列内の最初の項目をパスとアプリケーションに割り当てますが、最初はこれをスキップすることに気付きました。

それは単なる好みですか、それとも現在は 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の質問ではありません。

4

4 に答える 4

22

2 番目の方法は、main() の外で使用できるため、より優れています。そのため、リファクタリングする際に考えることが 1 つ少なくなります。

また、最初の方法で引数をメソッドパラメーターに入れる「魔法」も好きではありません。

于 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++ 時代からのやり方だからです。

コマンドラインにスイッチが多すぎる場合は、トーマスが推奨する getopt を見てください。とても便利です。ただし、同じC#ポートは見ていません。

よろしく、

kgr

于 2008-12-15T14:15:39.633 に答える