Questo è il mio programma con errore:
L'indice era fuori dai limiti dell'array
codice:
using System;
using System.Collections.Generic;
using System.Text;
namespace command
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("First Name is " + args[0]);
Console.WriteLine("Last Name is " + args[1]);
Console.ReadLine();
}
}
}
risposte:
1 per risposta № 1Il problema è che non ne passi nessunoparametri per il tuo programma. È possibile farlo eseguendo il programma dalla riga di comando oppure, se lo si esegue tramite Visual Studio, è possibile impostare gli argomenti da passare andando alle proprietà del progetto, selezionando la scheda Debug e inserendoli nella sezione Opzioni di avvio .
0 per risposta № 2
Questo si basa sull'idea che stai passando aminimo di due argomenti, ma non lo stai verificando per primo. Se non si desidera un output a meno che l'utente non abbia incontrato un minimo di due argomenti, utilizzare un blocco try {} e acquisire un array fuori limite con una risposta all'utente per utilizzare un minimo di due argomenti.
static void Main(string[] args) {
try{
Console.WriteLine("First Name is " + args[0]);
Console.WriteLine("Last Name is " + args[1]);
Console.ReadLine();
}catch (OutOfBoundsException exception){
MessageBox.Show("Insufficient input parameters");
}
Puoi anche usare un if (args.Length == 2) per determinare se questo è sufficiente senza usare un tentativo {}.
0 per risposta № 3
Devi controllare quanti parametri della riga di comando sono effettivamente fornito:
using System;
using System.Collections.Generic;
using System.Text;
namespace command
{
class Program
{
static void Main(string[] args) {
if (args.Length > 0)
Console.WriteLine("First Name is " + args[0]);
if (args.Length > 1)
Console.WriteLine("Last Name is " + args[1]);
Console.ReadLine();
}
}
}
per esempio.
# No parameters
c:MyProgram.exe
# One parameter
c:MyProgram.exe FirstNameOnly
# Two parameters
c:MyProgram.exe FirstName LastName
0 per risposta № 4
È sempre necessario verificare la dimensione dell'array args. COSÌ...
static void Main(string[] args)
{
if ( args.Count() >= 2 )
{
Console.WriteLine("First Name is " + args[0]);
Console.WriteLine("Last Name is " + args[1]);
Console.ReadLine();
}
}
0 per risposta № 5
Prova questo:
static void Main(string[] args)
{
if(args.Length > 0)
{
Console.WriteLine("First Name is " + args[0]);
Console.WriteLine("Last Name is " + args[1]);
}
else
Console.WriteLine("No Command Line Arguments were passed");
Console.ReadLine();
}
e passa gli argomenti della riga di comando come spiegato da David_001.