Unten sind zwei Möglichkeiten zum Lesen der Befehlszeilenparameter. Die erste ist die Art, wie ich mich daran gewöhne, den Parameter hauptsächlich zu verwenden. Die Sekunde, auf die ich gestoßen bin, als ich den Code überprüft habe. Ich habe bemerkt, dass der zweite das erste Element im Array dem Pfad und der Anwendung zuweist, aber das erste überspringt dies.Die beste Methode zum Lesen von Befehlszeilenparametern in der Konsolenanwendung
Ist es nur Vorliebe oder ist der zweite Weg der bessere Weg jetzt?
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
denke ich, das gleiche kann in C# getan werden, so dass es Frage nicht unbedingt ein vb.net ist.
+ 1 für Einzel Verantwortung Principle –
Es kann außerhalb der main() Methode verwendet werden, ja. Aber was passiert, wenn Sie die Klasse instanziieren und aufrufen möchten? Sie müssen es über die Befehlszeile aufrufen, oder es ignoriert Ihre Parameter, richtig? Wäre es nicht besser, mehrere Signaturen zu haben, eine mit übergebenen Argumenten und eine ohne; wo die eine ohne sie aus der System.CommandLine extrahiert und an die andere übergeben? –
@michael, natürlich würde ich diese Methode nicht in einer "Core" -Assembly aufrufen, nur im Konsolenprojekt. Ich dachte eher daran, etwas wie eine Settings-Klasse oder ein Äquivalent zu haben, das dafür sorgen würde, die Argumente so zu analysieren, dass sie für den Rest der App verwendbar sind. –