This article has been localized into French by the community.
Les variables
Une variable peut être assimilée à un espace de stockage et, est essentielle au programmateur. En C#, une variable est déclarée comme suit:
<data type_de_donnee> <name_de_variable> ;
Un exemple de déclaration ressemble à ceci:
string nom_de_variable;
Celle-ci est la version la plus simple, mais la variable n'a pas encore de valeur. Vous pouvez en assigner une plus tard ou en même temps que sa déclaration, comme suit:
<data type> <name> = <value>;
Si la variable n'est pas locale à la méthode en cours de traitement (par ex une variable membre de classe), vous voudriez lui assigner une visibilité:
<niveau d'accessibilité> <type de donnée> <nom> = <valeur>;
Et un exemple complet:
private string name = "John Doe";
La visibilité de la variable est en relation avec les classes, aussi le chapitre sur la classes en donne une explication plus complète. Concentrons nous maintenant sur la partie "variable" à travers un exemple de deux variables:
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();
}
}
}
Beaucoup d'éléments dans ce programme ont été déjà expliqués, aussi nous passons à la partie intéressante. D'abord nous déclarons un couple de variables de type "string" (chaîne de caractères). Une chaîne de caractères contient simplement du texte, comme vous pouvez le constater par les valeurs d'assignation. Ensuite nous imprimons une ligne de texte dans la sortie (console) en utilisant les deux variables et le signe "+" pour concaténer les différentes parties de cette ligne de texte.
Ensuite, nous demandons à l'utilisateur de saisir un nouveau "nom', et utilisons la méthode ReadLine() pour acquérir la saisie depuis la console et la stocker dans la variable firstName. Dès que l'utilisateur appuie sur le touche Entrée, le nouveau "nom" est stocké dans la variable, et nous présentons à nouveau le nom complet pour constater la modification. Nous venons d'utiliser notre première variable ainsi que sa plus importante fonctionnalité: la possibilité de modifier sa valeur à l'exécution.
Une autre possibilité intéressante est de faire des calculs mathématiques. En voici un exemple réutilisant beaucoup de code de l'exemple précédent:
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();
Copiez ceci dans votre méthode Main et faîtes en un essai. La seule nouvelle "astuce" que nous avons utilisée ici est la méthode int.Parse(). Elle prend simplement une chaîne de caractères en entrée et la convertit en un entier. Comme vous pouvez le constater, cette application ne fait aucun effort pour valider la saisie de l'utilisateur et, si vous entrez autre chose qu'un nombre, une exception sera lancée. Nous préciserons tout ceci plus tard.
Variables & scope
Pour l'instant nous n'avons utilisé que des variables locales, qui sont des variables définies et utilisées dans une seule et même méthode. En C#, une variable définie à l'intérieur d'une méthode ne peut être utilisée à l'extérieur de la méthode - c'est pourquoi on l'appelle variable locale. Si vous connaissez d'autres langages de programmation, vous connaissez surement la notion de variables globales, auquelles on peut accéder depuis plus d'endroits, mais en C# le concept de variables globales n'existe pas. A la place, on peut définir un champ dans une classe, qui peut être accessible depuis toutes les méthodes de cette classe. Laissez moi vous montrer un exemple :
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);
}
}
}
Notez que le membre helloClass, déclaré dans l'étendue de la classe plutôt que dans une méthode, nous permettra d'y accéder à partir de notre méthode Main() et de notre propre méthode DoStuff(). Ce n'est pas vrai pour notre variable helloLocal, qui a été déclarée dans la méthode Main() et ne peut donc être utilisée qu'à l'intérieur de cette méthode spécifique.
Le concept de différenciation entre les endroits où une variable a été déclarée s'appelle la portée et il évite que votre code ne devienne un fouillis énorme de variables pouvant être modifiées de trop nombreux endroits. Une autre technique qui nous aide à cela s'appelle la visibilité des membres (dans ce cas illustrée avec le mot clé private), que nous verrons dans le chapitre sur les classes.
Résumé
Les variables vous permettent de stocker des données de différents types, par exemple des chaînes de texte, des nombres ou des objets personnalisés. Il existe des variables locales, accessibles à l'intérieur de la méthode dans laquelle elle a été définie, puis des champs de classe, accessibles à partir de toutes les méthodes de la classe et même à l'extérieur de la classe, si la visibilité le permet.