Vous êtes sur la page 1sur 5

S.

Laporte C# mode console DAIGL TS1

Bases du langage C#
I. C# en mode console (mode texte)

? Avantages par rapport au mode graphique (Application Windows):


- C'est un mode plus proche de l'approche algorithmique (pas de notions de composants, de
proprits, d'vnements, ). Le programmeur dbutant matrise un peu mieux ce qu'il fait.
- Permet d'crire simplement des programmes qui ne permettent qu'une interaction minime
voire nulle avec l'utilisateur.
? Inconvnients :
- Ne reflte pas la ralit des applications de gestion actuelles (toutes avec interface
graphique)
- Aspect plus rbarbatif (l'application se lance dans une fentre de commande)

? Ecrire une application en mode Console

Pour crer une nouvelle application en mode console, la seule diffrence avec la cration
d'une nouvelle application Windows c'est qu'il faut choisir comme type de modle
Application Console et non Application Windows dans la bote de dialogue Nouveau
Projet.

A l'cran apparat alors le squelette du code de l'application. Evidemment, il n'y a pas de


mode design pour crer une interface graphique.
Dans la fentre Explorateur de solutions, on remarque que plusieurs fichiers sont gnrs
automatiquement. Tous ces fichiers sont indispensables, nous les tudierons par la suite, mais
dans un premier dans vous n'aurez travailler que sur un seul fichier, celui qui est ouvert par
dfaut, dans lequel vont tre crites les instructions. Ce fichier d'extension ".cs" (cs comme C
sharp) est appel par dfaut Class1.cs. Ce type de fichier qui contient le code du programme
s'appelle fichier source.

Les instructions de votre programme doivent tre crites l'intrieur des accolades du bloc
appel static void Main(string []args), la place des commentaires (les lignes
commenant par //). Nous verrons par la suite que nous pourrons placer du code en dehors de
Main (en crant d'autres blocs de code) ou mme crer d'autres fichiers source concernant la
mme application.

votre code devra tre ici

? Tant que vous tes novices en programmation et que vous ne matrisez pas les instructions
qui sont gnres automatiquement par l'environnement de dveloppement, ne touchez pas
ces instructions, surtout ne modifiez et ne supprimez rien, votre application risquerait alors
de ne plus fonctionner. Ceci est valable dans n'importe quel mode (console ou graphique).

Pour excuter un programme crit en mode console, il faut d'abord le gnrer, ce qui
correspond la traduction des instructions crites en C# en instructions comprhensibles par
la machine, ce qu'on appelle aussi la compilation.
S. Laporte C# mode console DAIGL TS1

Une fois la gnration russie (pas d'erreur de syntaxe), il faut lancer l'excution du
programme par la commande Excuter sans dbogage (dans le menu dboguer ou par l'icne
reprsentant un ! rouge, ou par Ctrl + F5).
? Attention, si vous choisissez la place la commande Dmarrer (flche ou F5) comme vous
pouviez le faire avec les applications Windows, alors l'application va s'excuter mais la
fentre se refermera immdiatement aprs, et on n'aura pas le temps de voir le rsultat.

Exemple de programme basique en mode console

Ce programme ce contente d'afficher Bonjour dans la fentre d'excution.

code source du
programme

seule instruction
ajoute, qui affiche
Bonjour !

fentre
d'excution

? L'affichage et la saisie en mode console

Pour l'affichage et la saisie, on utilise un composant invisible (une classe) qui s'appelle
Console, et qui possde des mthodes pour afficher du texte et saisir des chanes de caractre.

L'affichage

Comme il n'y a pas d'interface graphique avec des contrles pour crire du texte, ce sont des
instructions particulires qui permettent de l'affichage lors de l'excution, en mode texte dans
une fentre de commande.

Console.WriteLine( expression afficher ) ;

Cette instruction affiche la valeur de l'expression indique entre parenthses puis passe la
ligne.

Console.Write( expression afficher );


Cette instruction fait la mme chose mais sans passer la ligne. L'affichage suivant se fera
donc juste aprs ce qui est crit l'cran (sans mme un espace).
S. Laporte C# mode console DAIGL TS1

L'avantage des mthodes Write et WriteLine c'est qu'elles permettent d'afficher n'importe quel
type d'expression, et pas seulement les expressions de type chane de caractre (contrairement
au champ Text des contrles graphiques). Aucune conversion n'est ncessaire !

La saisie

La saisie est plus dlicate que l'affichage.


Pour rcuprer ce que l'utilisateur saisi au clavier, il faut d'abord dclarer une variable de type
string (chane de caractre) qui va permettre de mmoriser la saisie.
A cette variable, on affecte le rsultat de la mthode Console.ReadLine( ), qui est toujours
une chane de caractre (mme si l'utilisateur a tap un nombre). Le rsultat de cette mthode
est tout simplement ce que l'utilisateur a tap au clavier avant de valider par la touche Entre.
ex :
string chainesaisie ;
chainesaisie = Console.ReadLine();
Console.WriteLine("vous venez de saisi r la chane suivante : "+ chainesaisie);

Rsultat :

Si l'utilisateur saisit un nombre, celui-ci sera tout de mme considr comme une suite de
caractre, et donc comme une chane (string). Autrement dit, il n'est pas possible de saisir
directement une variable d'un autre type que string.

ex :
Impossible:
int unentier;
provoque une erreur la gnration
unentier = Console.ReadLine( ) ;

Pour pouvoir rcuprer la valeur saisie dans une variable de type appropri, il faut effectuer
une conversion par le composant (la classe) Convert et la mthode correspondante au type
voulu. Plus exactement, on affecte la variable du bon type, le rsultat de la conversion de la
chane saisie par Convert.To

Exemple : saisie d'un entier et affichage de son carr

string chnb; //Dclarations


int nb;

Console.WriteLine("tapez un nombre entier ");


chnb = Console.ReadLine(); //Saisie dans une variable de type string

nb = Convert.ToInt32(chnb); //Conversion de cette variable en type int

nb = nb*nb; //Calcul du carr

Console.Write("voil votre nombre au carr :"); //Affichage du rsultat


Console.WriteLine(nb);

Les principales mthodes de conversion sont les suivantes :


ToString pour convertir une expression numrique en chane.
S. Laporte C# mode console DAIGL TS1

Inutile de convertir une chane dans une autre chane !!


ToDouble pour convertir une chane ou un entier en rel (double).
ToInt32 pour convertir une chane ou un rel en entier.
Si la chane ne correspond pas un nombre entier, il y aura erreur l'excution.
Convertir un rel (double) en entier enlve la partie dcimale (aprs la virgule).
II. Les variables en C#

Rappel d'algorithmique
Les donnes d'un programme doivent tre stockes dans la mmoire vive de lordinateur afin dtre traites ou
compares. Les diffrents espaces mmoires utilisables par le programmeur sont appels variables, nommes
ainsi puisquelles stockent des valeurs qui peuvent varier selon le cours dexcution du programme.
Le contenu dune variable peut donc changer au cours de lexcution du code. Cependant, une variable ne peut
contenir quune seule donne la fois.

Dclaration d'une variable

Le programmeur doit procder la dclaration de la variable avant de pouvoir lutiliser.


La dclaration d'une variable indique son nom et son type.
Le type d'une variable spcifie 2 choses :
- la nature de l'information qui sera contenue au sein de cette variable, ce qui dtermine les
oprations possibles sur celle-ci
- et la taille de lespace mmoire ncessaire pour contenir cette information.

Les principaux types primitifs

Les principaux types de base de C# sont :


Type de Equivalent Description
donnes en Algo
byte entier Pour les petits entiers de 0 255
Reprsente un entier non sign sur 8 bits.
int entier Pour les entiers signs de -200 milliards 200 milliards environ.
Reprsente un entier sign sur 32 bits.
float rel Reprsente un nombre virgule flottante sur 32 bits (simple
prcision).
double rel Reprsente un nombre virgule flottante sur 64 bits (double
prcision).
decimal rel Pour les nombres trs grands, par exemple les valeurs montaires.
Reprsente une valeur dcimale sur 96 bits.
char caractre Reprsente un caractre Unicode sur 16 bits.
string chane reprsente une chane de caractres immuable longueur fixe de
caractres Unicode.
bool boolen reprsente une valeur boolenne true ou false.

Rgles concernant le nom des variables

Le nom dune variable dclare en C# doit respecter les critres suivants afin dtre valable :

Le premier caractre est obligatoirement une lettre ou le caractre de soulignement "_"


Le nom peut tre constitu de lettres, chiffres et du caractre de soulignement "_".
Une distinction est faite entre les majuscules et les minuscules (on dit que C# est sensible la casse).
TOTO, Toto et toto seront donc des noms de variables distincts.
Les accents sont tolrs par C# mais non conseills par les bonnes techniques de programmation.
Les mots rservs du langage C# ne peuvent pas tre utiliss comme noms de variables
(int, for, if, ). On se rend compte qu'on utilise un mot rserv du langage car celui-ci apparat d'une
couleur diffrente des autres variables.
S. Laporte C# mode console DAIGL TS1

Syntaxe de la dclaration

En algorithmique En C#

nomvariable : type type nomvariable ;

ex :
Var
x : entier int x;
bidule : chane string bidule;

Les variables sont dclares Les variables peuvent tre dclares


au dbut aprs le mot cl Var n'importe o dans le code

Conversion de type

Les fonctions de conversions permettent de transformer une variable d'un type donn dans un autre
type. Cela est en particulier utile pour manipuler des valeurs numriques saisies dans des contrles de
texte.
En effet, le texte des contrle est toujours du type string, mme si l'utilisateur y saisi un nombre. Et de
la mme manire, une variable affecte la proprit Text d'un contrle doit tre de type string.

Pour convertir toute variable en string on utilise la fonction suivante :

Convert.ToString(variable convertir);

De la mme manire, on peut convertir une variable dans n'import quel autre type.
Par exemple :
conversion en entier : Convert.ToInt32(variable convertir);
conversion en rel : Convert.ToDouble(variable convertir);

Si la variable ne peut tre convertie une erreur est renvoye. Par exemple, si l'utilisateur tape du texte
alphabtique dans une zone de saisie et que ce texte doit tre converti en entier, le programme s'arrte
en affichant une boite de dialogue d'erreur.

Exemple complet :

Supposons que nous ayons une zone de saisie appele txtBox et une tiquette lblResultat

int nombreEntier;

//conversion du texte de la zone de saisie pour l'affecter un nombre entier


nombreEntier = Convert.ToInt32(txtBox.Text) ;

//conversion du nombre en chane pour l'crire dans le Label


lblResultat.Text = Convert.ToString(nombreEntier) ;

Vous aimerez peut-être aussi