A continuación se incluyen dos formas de lectura en los parámetros de la línea de comandos. La primera es la forma en que estoy acostumbrado a ver el uso del parámetro en general. El segundo en el que tropecé al revisar el código. Me di cuenta de que el segundo asigna el primer elemento de la matriz a la ruta y a la aplicación, pero el primero omite esto.La mejor manera de leer los parámetros de la línea de comandos en la aplicación de la consola
¿Es solo preferencia o es la segunda manera, la mejor manera ahora?
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
Creo que lo mismo se puede hacer en C#, así que no es necesariamente una cuestión vb.net.
+ 1 para la responsabilidad solo principio –
Puede ser utilizado fuera del método main(), sí. Pero, ¿qué sucede cuando quieres instanciar la clase y llamarla? Tienes que invocarlo a través de la línea de comando, o ignora tus parámetros, ¿verdad? ¿no sería mejor tener múltiples firmas, una con argumentos pasados y otra sin ella? donde el que está fuera los extraerá del System.CommandLine y pasará al otro? –
@michael, por supuesto, no haría una llamada a ese método en un ensamblado "Core", solo en el proyecto de la consola. Estaba pensando más en la línea de tener algo así como una clase de configuración o equivalente, que se encargaría de analizar los argumentos de una manera que se pueda utilizar para el resto de la aplicación. –