This article has been localized into Italian by the community.
Variabili
Una variabile può essere paragonata a un magazzino ed è essenziale per il programmatore. In C#, una variabile è dichiarata in questo modo:
<data type> <name>;
Un esempio potrebbe somigliare a questo:
string name;
Questa è la versione più semplice, ma la variabile non ha ancora un valore. Puoi assegnarne uno in un momento successivo o allo stesso tempo in cui lo dichiari, in questo modo:
<data type> <name> = <value>;
Se questa variabile non è locale al metodo al quale stai attualmente lavorando (ad esempio una variabile membro della classe), potresti voler assegnare una visibility alla variabile:
<visibility> <data type> <name> = <value>;
Ed un esempio completo:
private string name = "John Doe";
La parte visibility è correlata alle classi, quindi puoi trovare una spiegazione più completa nel capitolo sulle classi. Concentriamoci sulla parte variabile con un esempio in cui effettivamente ne usiamo un paio:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string firstName = "John";
string lastName = "Doe";
Console.WriteLine("Name: " + firstName + " " + lastName);
Console.WriteLine("Please enter a new first name:");
firstName = Console.ReadLine();
Console.WriteLine("New name: " + firstName + " " + lastName);
Console.ReadLine();
}
}
}
Ok, molto è già stato spiegato, quindi passeremo direttamente alla parte interessante. Prima di tutto, dichiariamo un paio di variabili del tipo string. Una stringa contiene semplicemente del testo, come puoi vedere,diamo loro subito un valore. Successivamente, viene generata una riga di testo sulla console, in cui vengono utilizzate le due variabili. La stringa è composta grazie all'uso del carattere "+" per "raggruppare" le diverse parti.
Successivamente, invitiamo l'utente a inserire un nuovo nome, quindi usiamo il metodo ReadLine() per leggere l'input dell'utente dalla console e nella variabile firstName. Quando l'utente preme il tasto Invio, il nuovo nome viene assegnato alla variabile e nella riga successiva viene nuovamente visualizzata la presentazione del nome, per mostrare la modifica. Abbiamo appena usato la nostra prima variabile e la singola caratteristica più importante di una variabile: l'abilità di cambiare il suo valore in fase di runtime.
Un altro esempio interessante è quello matematico. Qui ce n'è uno, basato su molti dei codici che abbiamo già usato:
int number1, number2;
Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());
Console.WriteLine("Thank you. One more:");
number2 = int.Parse(Console.ReadLine());
Console.WriteLine("Adding the two numbers: " + (number1 + number2));
Console.ReadLine();
Metti questo nel nostro metodo Main e provalo. L'unico nuovo "trucco" che usiamo qui, è il metodo int.Parse(). Legge semplicemente una stringa e la converte in un numero intero. Come puoi vedere, questa applicazione non fa alcuno sforzo per convalidare l'input dell'utente, e se inserisci qualcosa che non è un numero, verrà sollevata un'eccezione. Ulteriori informazioni sui capitoli successivi.
Variabili e loro utilizzo
Fino ad ora sono state utilizzate esclusivamente variabili locali, che sono variabili dichiarate ed utilizzate all'interno di uno stesso metodo. La sintassi del linguaggio C# prevede che una variabile, dichiarata all'interno di un metodo, non può essere utilizzate al di fuori del metodo stesso ( ecco perché viene definita "locale"). Se hai familiarità con altri linguaggi di programmazione, saprai dell'esistenza di variabili globali, alle quali è possibile accedere da più punti. Nel caso del linguaggio C# il concetto di variabile globale non è supportato. E' possibile, però, definire all'interno di una classe un campo che sia accessibile da tutti i metodi della classe. Permettimi di dimostrarti quanto detto con un esempio:
using System;
namespace VariableScope
{
class Program
{
private static string helloClass = "Hello, class!";
static void Main(string[] args)
{
string helloLocal = "Hello, local!";
Console.WriteLine(helloLocal);
Console.WriteLine(Program.helloClass);
DoStuff();
}
static void DoStuff()
{
Console.WriteLine("A message from DoStuff: " + Program.helloClass);
}
}
}
Nota che il membro helloClass , dichiarato come campo della classe, e non all'interno di un metodo, è accessibile sia dal metodo Main() che dal metodo DoStuff() . Considerazione che non può essere fatta invece per la variabile helloLocal , la quale essendo dichiarata all'interno del metodo Main() può essere utilizzata esclusivamente all'interno del metodo appena specificato.
Il concetto di distinguere dove una variabile sia stata dichiarata è chiamato scoping ed evita che il tuo codice diventi pieno di variabili che possono essere modificate da troppe parti differenti. Un'altra tecnica che ci aiuta in questo è chiamata visibilità dei membri (in questo caso illustrata con la parola chiave "private"), della quale discuteremo nel capitolo sulle classi.
Conclusioni
Le variabili ti permettono ti immagazzinare dati di vario tipo, p.es. stringhe di testo, numeri od oggeti. Ci sono le variabili locali che sono accessibili all'interno del metodo dove sono state definite, poi ci sono i campi della classe ai quali si può accedere da tutti i metodi della classe e anche al di fuori di essa, se la visibilità lo consente.