Esercitazione: Creare una semplice app console C# in Visual Studio (parte 1 di 2)
In questa esercitazione si usa Visual Studio per creare ed eseguire un'app console C# ed esplorare alcune funzionalità dell'ambiente di sviluppo integrato (IDE) di Visual Studio. Questa esercitazione è la parte 1 di una serie di esercitazioni in due parti.
In questa esercitazione si completano le attività seguenti:
- Creare un progetto di Visual Studio.
- Creare un'app console C#.
- Eseguire il debug dell'app.
- Chiudere l'app.
- Esaminare il codice completo.
Nella parte 2 estendere questa app per aggiungere altri progetti, apprendere i trucchi di debug e fare riferimento a pacchetti di terze parti.
Prerequisiti
È necessario aver installato Visual Studio.
Se non è ancora stato installato Visual Studio, accedere alla pagina Download di Visual Studio per installarlo gratuitamente.
Creare un progetto
Per iniziare, creare un progetto di applicazione C#. Il tipo di progetto include tutti i file modello necessari.
Aprire Visual Studio e selezionare Crea un nuovo progetto nella finestra Start.
Nella finestra Crea un nuovo progetto scegliere C# dall'elenco Linguaggio. Scegliere quindi Windows dall'elenco Piattaforma e Console dall'elenco dei tipi di progetto.
Dopo aver applicato i filtri lingua, piattaforma e tipo di progetto, scegliere il modello Applicazione console e quindi selezionare Avanti.
Nota
Se il modello applicazione console non è visualizzato, selezionare Installa altri strumenti e funzionalità.
Nella Programma di installazione di Visual Studio selezionare il carico di lavoro sviluppo multipiattaforma .NET Core.
Selezionare Modifica nel Programma di installazione di Visual Studio. Potrebbe essere richiesto di salvare il lavoro. Selezionare Continua per installare il carico di lavoro.
Tornare al passaggio 2 della procedura "Creare un progetto".
Nella finestra Configura il nuovo progetto digitare o immettere Calculator nella casella Nome del progetto. Quindi seleziona Avanti.
Nella finestra Informazioni aggiuntive verificare che .NET Core 3.1 sia visualizzato nel campo Framework di destinazione. Quindi, selezionare Crea.
Visual Studio aprirà il nuovo progetto che include il codice "Hello World" predefinito. Per visualizzarlo nell'editor, selezionare il file di codice Program.cs nella finestra Esplora soluzioni, che in genere si trova sul lato destro di Visual Studio.
Il codice "Hello World" predefinito chiama il WriteLine metodo per visualizzare la stringa letterale "Hello, World!" nella finestra della console. Se si preme F5, è possibile eseguire il programma predefinito in modalità debug. Dopo l'esecuzione dell'applicazione nel debugger, la finestra della console rimane aperta. Premere un tasto per chiudere la finestra della console.
Aprire Visual Studio e selezionare Crea un nuovo progetto nella finestra Start.
Nella finestra Crea un nuovo progetto selezionare Tutti i linguaggi e quindi scegliere C# dall'elenco a discesa. Scegliere Windows dall'elenco Tutte le piattaforme e scegliere Console dall'elenco Tutti i tipi di progetto.
Dopo aver applicato i filtri lingua, piattaforma e tipo di progetto, scegliere il modello App console e quindi selezionare Avanti.
Nota
Se non viene visualizzato il modello App console, selezionare Installa altri strumenti e funzionalità.
Nella Programma di installazione di Visual Studio selezionare il carico di lavoro Sviluppo di applicazioni desktop .NET.
Selezionare Modifica nel Programma di installazione di Visual Studio. Potrebbe essere richiesto di salvare il lavoro. Selezionare Continua per installare il carico di lavoro.
Tornare al passaggio 2 della procedura "Creare un progetto".
Nella finestra Configura il nuovo progetto digitare o immettere Calculator nella casella Nome progetto e quindi selezionare Avanti.
Nella finestra Informazioni aggiuntive selezionare .NET 8.0 per il campo Framework di destinazione. Quindi, selezionare Crea.
Visual Studio aprirà il nuovo progetto che include il codice "Hello World" predefinito. Per visualizzarlo nell'editor, selezionare il file di codice Program.cs nella finestra Esplora soluzioni, che in genere si trova sul lato destro di Visual Studio.
La singola istruzione di codice chiama il WriteLine metodo per visualizzare la stringa letterale "Hello, World!" nella finestra della console. Se si preme F5, è possibile eseguire il programma predefinito in modalità debug. Dopo l'esecuzione dell'applicazione nel debugger, la finestra della console rimane aperta. Premere un tasto per chiudere la finestra della console.
Nota
A partire da .NET 6, i nuovi progetti che usano il modello di console generano codice diverso rispetto alle versioni precedenti. Per altre informazioni, vedere la pagina Nuovi modelli C# per generare istruzioni di primo livello.
Creare l'app
In questa sezione vengono completate le attività seguenti:
- Esplorare alcuni calcoli matematici integer di base in C#.
- Aggiungere codice per creare un'app calcolatrice di base.
- Eseguire il debug dell'app per trovare e correggere gli errori.
- Perfezionare il codice per renderlo più efficiente.
Esplorare le operazioni matematiche su interi
Iniziare con alcuni calcoli matematici integer di base in C#.
Nell'editor del codice, eliminare il codice "Hello World" predefinito.
In particolare, eliminare la riga con la dicitura
Console.WriteLine("Hello World!");
.Al suo posto immettere il codice seguente:
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();
Si noti che quando si immette il codice, la funzionalità IntelliSense in Visual Studio offre la possibilità di completare automaticamente la voce.
Selezionare il pulsante verde Start accanto a Calculator per compilare ed eseguire il programma oppure premere F5.
Si aprirà una finestra della console che visualizza la somma di 42 + 119., vale a dire 161.
(Facoltativo) È possibile modificare l'operatore per modificare il risultato. Nella riga di codice
int c = a + b;
è ad esempio possibile modificare l'operatore+
in-
per la sottrazione,*
per la moltiplicazione o/
per la divisione. A questo punto, quando il programma sarà eseguito, il risultato cambierà.Chiudere la finestra della console.
Nel riquadro di destra Esplora soluzioni selezionare Program.cs per visualizzare il file nell'editor di codice
Nell'editor di codice sostituire il codice "Hello World" predefinito che indica
Console.WriteLine("Hello World!");
.Sostituire la riga con il codice seguente:
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();
Se si immette il codice, la funzionalità IntelliSense di Visual Studio offre la possibilità di completare automaticamente la voce.
Per compilare ed eseguire l'app, premere F5 o selezionare la freccia verde accanto al nome Calcolatrice nella barra degli strumenti superiore.
Viene visualizzata una finestra della console che mostra la somma di 42 + 119, ovvero 161.
Chiudere la finestra della console.
Facoltativamente, è possibile modificare l'operatore per modificare il risultato. Nella riga di codice
int c = a + b;
è ad esempio possibile modificare l'operatore+
in-
per la sottrazione,*
per la moltiplicazione o/
per la divisione. Quando si esegue l'app, il risultato cambia di conseguenza.
Aggiungere codice per creare un'app di calcolo
Continuare aggiungendo un set di codice calcolatore più complesso al progetto.
Nell'editor di codice sostituire tutto il codice in Program.cs con il nuovo codice seguente:
using System; namespace Calculator { class Program { static void Main(string[] args) { // Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey(); } } }
Selezionare il pulsante Calcolatrice o premere F5 per eseguire l'app.
Viene visualizzata una finestra della console.
Nella finestra della console seguire le istruzioni per aggiungere i numeri 42 e 119 insieme.
L'app avrà un aspetto simile allo screenshot seguente:
Nell'editor di codice sostituire tutto il codice in Program.cs con il nuovo codice seguente:
// Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey();
Selezionare il pulsante Calcolatrice o premere F5 per eseguire l'app.
Viene visualizzata una finestra della console.
Nella finestra della console seguire le istruzioni per aggiungere i numeri 42 e 119 insieme.
L'app avrà un aspetto simile allo screenshot seguente:
Aggiungere funzionalità decimali
A questo punto, modificare il codice per aggiungere altre funzionalità.
L'app calcolatrice corrente accetta e restituisce solo numeri interi. Ad esempio, se si esegue l'app e si divide il numero 42 per il numero 119, il risultato è zero, che non è esatto.
Per correggere il codice per migliorare la precisione gestendo i decimali:
Da Program.cs nell'editor di Visual Studio premere CTRL+H per aprire il controllo Trova e sostituisci.
Digitare int nel controllo e digitare float nel campo Sostituisci .
Selezionare le icone per Maiuscole/minuscole e Corrispondenza parola intera nel controllo oppure premere ALT+C e ALT+W.
Selezionare l'icona Sostituisci tutto o premere ALT+A per eseguire la ricerca e sostituire.
Eseguire di nuovo l'app calcolatrice e dividere il numero 42 per il numero 119.
L'app restituisce ora un numero decimale anziché zero.
Ora l'app può produrre risultati decimali. Apportare altre modifiche al codice in modo che l'app possa calcolare anche i decimali.
Usare il controllo Trova e sostituisci per modificare ogni istanza della
float
variabile indouble
e per modificare ogni istanza delConvert.ToInt32
metodo inConvert.ToDouble
.Eseguire l'app calcolatrice e dividere il numero 42,5 per il numero 119,75.
L'app accetta ora valori decimali e restituisce un numero decimale più lungo come risultato.
Nella sezione Rivedi il codice si riduce il numero di posizioni decimali nei risultati.
Eseguire il debug dell'app
È stata migliorata l'app calcolatrice di base, ma l'app non gestisce ancora eccezioni, ad esempio errori di input dell'utente. Ad esempio, se gli utenti tentano di dividere per zero o immettere un carattere imprevisto, l'app potrebbe smettere di funzionare, restituire un errore o restituire un risultato non numerico imprevisto.
Verranno ora illustrati alcuni errori di input utente comuni, individuarli nel debugger, se visualizzati e correggerli nel codice.
Suggerimento
Per altre informazioni sul debugger e sul relativo funzionamento, vedere Prima di tutto il debugger di Visual Studio.
Correggere l'errore di divisione per zero
Se si tenta di dividere un numero per zero, l'app console potrebbe bloccarsi e quindi mostra cosa c'è di sbagliato nell'editor di codice.
Nota
A volte l'app non si blocca e il debugger non visualizza un errore di divisione per zero. L'app potrebbe invece restituire un risultato non numerico imprevisto, ad esempio un simbolo infinito. La correzione del codice seguente si applica ancora.
Ora il codice verrà modificato per gestire questo errore. In Program.cs sostituire il codice per case "d":
con il codice seguente:
// Ask the user to enter a non-zero divisor until they do so.
while (num2 == 0)
{
Console.WriteLine("Enter a non-zero divisor: ");
num2 = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
Dopo aver sostituito il codice, la sezione con l'istruzione switch
dovrebbe essere simile alla schermata seguente:
Ora, quando si divide un numero qualsiasi per zero, l'app chiede un altro numero e continua a chiedere finché non si specifica un numero diverso da zero.
Correggere l'errore di formato
Se si immette un carattere alfabetico quando l'app prevede un carattere numerico, l'app si blocca. Visual Studio mostra cosa c'è di sbagliato nell'editor di codice.
Per evitare questa eccezione, è possibile effettuare il refactoring del codice immesso in precedenza.
Rivedere il codice
Anziché basarsi sulla program
classe per gestire tutto il codice, è possibile dividere l'app in due classi: Calculator
e Program
.
La Calculator
classe gestisce la maggior parte del lavoro di calcolo e la classe gestisce l'interfaccia utente e il Program
lavoro di gestione degli errori.
Iniziamo.
In Program.cs eliminare tutti gli elementi e aggiungere la nuova
Calculator
classe seguente:class Calculator { public static double DoOperation(double num1, double num2, string op) { double result = double.NaN; // Default value is "not-a-number" if an operation, such as division, could result in an error. // Use a switch statement to do the math. switch (op) { case "a": result = num1 + num2; break; case "s": result = num1 - num2; break; case "m": result = num1 * num2; break; case "d": // Ask the user to enter a non-zero divisor. if (num2 != 0) { result = num1 / num2; } break; // Return text for an incorrect option entry. default: break; } return result; } }
Aggiungere anche una nuova
Program
classe, come indicato di seguito:class Program { static void Main(string[] args) { bool endApp = false; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); while (!endApp) { // Declare variables and set to empty. string numInput1 = ""; string numInput2 = ""; double result = 0; // Ask the user to type the first number. Console.Write("Type a number, and then press Enter: "); numInput1 = Console.ReadLine(); double cleanNum1 = 0; while (!double.TryParse(numInput1, out cleanNum1)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput1 = Console.ReadLine(); } // Ask the user to type the second number. Console.Write("Type another number, and then press Enter: "); numInput2 = Console.ReadLine(); double cleanNum2 = 0; while (!double.TryParse(numInput2, out cleanNum2)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput2 = Console.ReadLine(); } // Ask the user to choose an operator. Console.WriteLine("Choose an operator from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); string op = Console.ReadLine(); try { result = Calculator.DoOperation(cleanNum1, cleanNum2, op); if (double.IsNaN(result)) { Console.WriteLine("This operation will result in a mathematical error.\n"); } else Console.WriteLine("Your result: {0:0.##}\n", result); } catch (Exception e) { Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message); } Console.WriteLine("------------------------\n"); // Wait for the user to respond before closing. Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: "); if (Console.ReadLine() == "n") endApp = true; Console.WriteLine("\n"); // Friendly linespacing. } return; } }
Selezionare il pulsante Calcolatrice o premere F5 per eseguire l'app.
Seguire le istruzioni e dividere il numero 42 per il numero 119. I risultati dovrebbero essere simili allo screenshot seguente:
È ora possibile eseguire altri calcoli fino a quando non si sceglie di chiudere l'app console. Ci sono anche meno posizioni decimali nei risultati. Se si immette un carattere non corretto, si riceve una risposta di errore appropriata.
Chiudere l'app
Se non è già stato fatto, chiudere l'app Calcolatrice.
Chiudere il riquadro Output in Visual Studio.
In Visual Studio premere CTRL+S per salvare l'app.
Aggiungere il controllo del codice sorgente Git
Dopo aver creato un'app, è possibile aggiungerla a un repository Git. Visual Studio semplifica questo processo con gli strumenti Git che è possibile usare direttamente dall'IDE.
Suggerimento
Git è il sistema di controllo della versione più diffuso, quindi se si è uno sviluppatore professionista o si sta imparando a scrivere codice, Git può essere molto utile. Se non si ha familiarità con Git, il https://git-scm.com/ sito Web è un buon punto di partenza. Qui è possibile trovare fogli di trucco, un libro online popolare e video di Base su Git.
Per associare il codice a Git, iniziare creando un nuovo repository Git in cui si trova il codice:
Nella barra di stato nell'angolo inferiore destro di Visual Studio selezionare Aggiungi al controllo del codice sorgente e quindi selezionare Git.
Nella finestra di dialogo Crea un repository Git accedere a GitHub.
Il nome del repository viene popolato automaticamente in base al percorso della cartella. Il nuovo repository è privato per impostazione predefinita, ovvero l'unico che può accedervi.
Suggerimento
Indipendentemente dal fatto che il repository sia pubblico o privato, è consigliabile disporre di un backup remoto del codice archiviato in modo sicuro in GitHub. Anche se non si lavora con un team, un repository remoto rende disponibile il codice da qualsiasi computer.
Selezionare Crea ed esegui push.
Dopo aver creato il repository, nella barra di stato vengono visualizzati i dettagli sullo stato.
La prima icona con le frecce mostra il numero di commit in uscita/in ingresso nel ramo corrente. È possibile usare questa icona per eseguire il pull di tutti i commit in ingresso o eseguire il push di tutti i commit in uscita. È anche possibile scegliere di visualizzare prima questi commit. A tale scopo, selezionare l'icona e quindi selezionare Visualizza in uscita/In ingresso.
La seconda icona con la matita mostra il numero di modifiche di cui non è stato eseguito il commit nel codice. È possibile selezionare questa icona per visualizzare le modifiche nella finestra Modifiche Git.
Per altre informazioni su come usare Git con l'app, vedere la documentazione sul controllo della versione di Visual Studio.
Revisione: Codice completato
In questa esercitazione sono state apportate molte modifiche all'app Calculator. L'app ora gestisce le risorse di calcolo in modo più efficiente e gestisce la maggior parte degli errori di input dell'utente.
Ecco il codice completo:
class Calculator
{
public static double DoOperation(double num1, double num2, string op)
{
double result = double.NaN; // Default value is "not-a-number" which we use if an operation, such as division, could result in an error.
// Use a switch statement to do the math.
switch (op)
{
case "a":
result = num1 + num2;
break;
case "s":
result = num1 - num2;
break;
case "m":
result = num1 * num2;
break;
case "d":
// Ask the user to enter a non-zero divisor.
if (num2 != 0)
{
result = num1 / num2;
}
break;
// Return text for an incorrect option entry.
default:
break;
}
return result;
}
}
class Program
{
static void Main(string[] args)
{
bool endApp = false;
// Display title as the C# console calculator app.
Console.WriteLine("Console Calculator in C#\r");
Console.WriteLine("------------------------\n");
while (!endApp)
{
// Declare variables and set to empty.
string numInput1 = "";
string numInput2 = "";
double result = 0;
// Ask the user to type the first number.
Console.Write("Type a number, and then press Enter: ");
numInput1 = Console.ReadLine();
double cleanNum1 = 0;
while (!double.TryParse(numInput1, out cleanNum1))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput1 = Console.ReadLine();
}
// Ask the user to type the second number.
Console.Write("Type another number, and then press Enter: ");
numInput2 = Console.ReadLine();
double cleanNum2 = 0;
while (!double.TryParse(numInput2, out cleanNum2))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput2 = Console.ReadLine();
}
// Ask the user to choose an operator.
Console.WriteLine("Choose an operator from the following list:");
Console.WriteLine("\ta - Add");
Console.WriteLine("\ts - Subtract");
Console.WriteLine("\tm - Multiply");
Console.WriteLine("\td - Divide");
Console.Write("Your option? ");
string op = Console.ReadLine();
try
{
result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
if (double.IsNaN(result))
{
Console.WriteLine("This operation will result in a mathematical error.\n");
}
else Console.WriteLine("Your result: {0:0.##}\n", result);
}
catch (Exception e)
{
Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
}
Console.WriteLine("------------------------\n");
// Wait for the user to respond before closing.
Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: ");
if (Console.ReadLine() == "n") endApp = true;
Console.WriteLine("\n"); // Friendly linespacing.
}
return;
}
}
Passaggi successivi
Continuare con la seconda parte di questa esercitazione: