CSharp Base PDF
CSharp Base PDF
CSharp Base PDF
langage C#
Version 1.0
Z
2 [Notions fondamentales du langage Csharp] [Date : 25/03/09]
Sommaire
3 Conclusion ........................................................................................................................ 25
Une fois notre code crit en langage de programmation, un logiciel appel compilateur va se
charger de le traduire en langage binaire comme indiqu sur le schma ci-dessous.
Langage de programmation
Compilateur
Code binaire
1.3.1 Introduction
Nous sommes aujourdhui la version 3.5 du Framework .NET (et bientt 4.0). La premire
version exploitable de celui-ci est sortie en 2002 et celle-ci na pas cess dvoluer de mme que son
environnement de programmation ddi : Visual Studio. En effet la version 1 .1 est sortie en 2003
puis la 2.0 en 2005 la 3.0 en 2006 et la version actuelle 3.5 sortie en 2007. Chaque mise jour
apportant dimportantes nouveauts et amliorations.
Nativement, la plate-forme .NET fut cre pour Windows, mais celle-ci est dsormais portable sur des
systmes Linux ou Unix, grce un projet intitul MONO.
Le Framework .NET regroupe un ensemble doutils pour le programmeur. En effet les technologies
.Net vont nous permettre de programmer autant des applications console et WindowsForm que des
services Web, des applications Windows mobile et bien dautres.
Un des avantages du Framework .Net, cest quil est multi-langages. C'est--dire que lon va pouvoir
programmer en VB.NET, en C#, en C++, en J# et aussi en dautres langages compatibles. Nous allons
voir comment larchitecture du Framework va nous permettre cela.
2 Les bases du C#
Puis, dans la fentre qui souvre, on va choisir Visual C# dans le menu droulant et Console
Application et donner un nom notre projet.
Si tout sest bien pass, vous devriez avoir un code qui ressemble a :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DotnetFrance
{
class Program
{
static void Main(string[] args)
{
}
}
}
//C#
using <notre espace de noms>
//C#
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Bienvenue sur Dotnet-France!!!");
}
}
//C#
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Bienvenue sur Dotnet-France!!!");
System.Console.ReadLine();
}
}
//C#
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Bienvenue sur Dotnet-France!!!");
Console.ReadKey();
}
}
Grce la ligne using System; notre programme "sait" maintenant o trouver linstruction
Console.WriteLine sans que nous ayons lui indiquer le chemin absolu chaque fois.
2.2.2 Variables
2.2.2.1 Introduction
Comme vous le savez certainement, les variables nous permettent de stocker des valeurs en
mmoire. Nous allons voir comment dclarer une variable en C#. Pour ceux qui auraient des
connaissances en langage C, C++, ou Java cette partie ne sera quun rappel car la syntaxe du C# est
quasiment identique aux langages noncs prcdemment.
//C#
using System;
class Program
{
static void Main(string[] args)
{
//Ceci est un commentaire, il sera ignor par le
compilateur !
bool exempleBooleen = true; //true ou false
sbyte exempleSbyte = 8;
byte exempleByte = 139;
Console.WriteLine(exempleBooleen);
Console.WriteLine(exempleChar);
Console.WriteLine(exempleString);
Console.WriteLine(exempleSbyte);
//C#
Console.WriteLine(exempleByte);
Console.WriteLine(exempleShort);
Console.WriteLine(exempleUshort);
Console.WriteLine(exempleEntier);
Console.WriteLine(exempleUint);
Console.WriteLine(exempleLong);
Console.WriteLine(exempleUlong);
Console.WriteLine(exempleFloat);
Console.WriteLine(exempleDouble);
Console.WriteLine(exempleDecimal);
Console.WriteLine(g);
Console.ReadLine();
//Cette instruction attends une entre utilisateur, elle
nous permet donc de voir ce qui s'est affich dans la
console.
}
}
True
w
une chane de caractres !
8
139
-345
35000
40000
79500
402340540607
345678905768
1.72
8765439876523.54
00.0001245672342573473859034285
9.80665
2.2.3 Oprateurs
Operateur Signification
+ Addition
- Soustraction
* Multiplication
/ Division
% Modulo
//C#
using System;
class Program
{
static void Main(string[] args)
{
int x; //dclaration d'un entier x sans initialisation.
int y = 5; //dclaration d'un entier y ayant pour valeur 7.
x = 7; //affectation de x
12
2
35
1
2
Pour vous entrainer, vous pouvez changer les valeurs de x et y et observer les nouveaux rsultats.
Operateur Signification
> Strictement suprieur
< Strictement infrieur
>= Suprieur ou gal
<= Infrieur ou gal
!= Diffrent de
== Egal
//C#
using System;
class Program
{
static void Main(string[] args)
{
//l'utilisation de la virgule permet de condenser
//les dclarations de variables de meme type.
Console.ReadLine();
//Cette instruction attend une entre utilisateur, elle
nous permet donc de voir ce qui s'est affich dans la
console.
}
}
False
True
True
False
Operateur Signification
|| OU
&& ET
? : (oprateur ternaire) Condition ? valeur_si_Vrai : valeur_si_Faux
?? ?? valeur si null
//C#
using System;
class Program
{
static void Main(string[] args)
{
test3 = (c == 1) ? "c est gal 1" : "c n'est pas gal 1";
//enregistre la premier chane si c==1 sinon enregistre la
//deuxiemme chane.
Console.ReadLine();
}
}
False
True
c est gal 1
Je vous conseille vivement de reprendre ce code et de changer les valeurs de a, b et c afin de bien
comprendre le fonctionnement de ces oprateurs.
Operateur Signification
= Permet dassigner une valeur une variable
+=, -=, *=, /=, %= Opration puis rassignation
Nous allons tout de suite expliquer le concept des oprateurs de la deuxime ligne du tableau dont la
signification doit tre encore un peu floue.
a +=4 quivaut crire a = a+4. La premire expression nous permet donc de condenser la
premire dans le but de ne pas avoir rpter le nom de la variable rassigner .
//C#
using System;
class Program
{
static void Main(string[] args)
{
int a; // on dclare un entier a.
Console.ReadLine();
}
}
Operateur Signification
variable++ , variable-- +1 ou -1 aprs utilisation de la variable
++variable , --variable +1 ou -1 avant lutilisation de la variable
//C#
using System;
class Program
{
static void Main(string[] args)
{
//a++ quivaut a+=1 qui quivaut a=a+1.
int a = 0;
// on initialise a 0.
Console.WriteLine(a++);
//affiche a,soit 0, puis l'incrmente.
Console.WriteLine(a);
//affiche la valeur courante de a, soit 1.
Console.WriteLine(++a);
//incrmente a, puis affiche sa valeur, soit 2.
Console.ReadLine();
}
}
0
1
2
Le systme de la dcrmentation est totalement identique si ce nest que lopration effectue est
-1 au lieu de +1 .
2.2.4.1 If
Le mot cl if signifie Si en franais. La syntaxe dune structure if est dtaille ci-dessous :
if( condition )
{
instruction effectuer;
instruction effectuer;
}
Linstruction if traite une expression boolenne, si la condition place entre parenthse est
vraie, alors on excute le code entre accolades.
2.2.4.2 If else
Au simple si , on peut galement ajouter un sinon si qui sera test aprs le premier
si, puis un sinon qui sexcute si aucune des clauses si nest vraie.
Exemple :
On peut mettre autant de if else que lon souhaite pour tester autant de conditions que lon
veut.
2.2.4.3 Switch
La structure dun switch est la suivante :
2.2.5.1 While
While signifie Tant que .Cette boucle tourne tant que lexpression quon lui donne
est vraie.
while (expression) //la boucle tourne tant que l'expression est vraie
{
instruction;
}
Nous allons voir un exemple simple, une boucle qui demande lutilisateur dentrer 0 pour sortir,
et qui se rpte tant que lutilisateur ne tape pas 0.
using System;
class Program
{
static void Main(string[] args)
{
//on dclare x un entier que notre boucle va tester.
int x;
Rien de bien difficile dans ce code, mais une ligne en particulier mrite des explications, la ligne :
x = Convert.ToInt16(Console.ReadLine());
Pour stocker lentre au clavier dans la variable x, pourquoi na-t-on pas tout simplement crit :
x = Console.ReadLine(); .
Si vous crivez cela, vous obtiendrez une erreur de Visual Studio, car vous essayer de stocker une
chane de caractres dans un entier. En effet, la fonction Console.ReadLine() renvoi une
chaine de caractre, on ne peut donc pas la stocker dans une variable entire.
Cest pour cela que lon utilise la fonction Convert.ToInt16() afin de transformer la chaine
de caractre rcupre en entier.
2.2.5.2 Do while
La boucle do while signifie Faire tant que .Elle est identique la boucle While
deux dtails prs :
- Le code lintrieur de la boucle est effectu au moins une fois, car lexpression est teste
la fin.
- On met un ; aprs lexpression.
do //Excuter ce code.
{
instruction;
2.2.5.3 For
La boucle for correspond la structure itrative Pour en algorithmique.
Prenons par exemple un programme qui affiche Bonjour autant de fois que lon veut. Nous allons
dabord dclarer une variable i initialise 1, et lincrmenter chaque tour de boucle jusquau
nombre de bonjour dsirs :
using System;
class Program
{
static void Main(string[] args)
{
for (int i = 1; i <= 10; i++) // On veut afficher 10 "Bonjour"
{
Console.WriteLine("Bonjour " + i + " fois"); //le "+" met les chaines
bout bout (concatenation).
}
Console.ReadLine(); //Met le programme en pause la fin de l'affichage.
}
}
Bonjour 1 fois
Bonjour 2 fois
Bonjour 3 fois
Bonjour4 fois
Bonjour 5 fois
Bonjour 6 fois
Bonjour 7 fois
Bonjour 8 fois
Bonjour 9 fois
Bonjour 10 fois
3 Conclusion
Dans ce chapitre, nous avons abord des concepts fondamentaux qui nous permettrons de
poursuivre sereinement lapprentissage du C# et de ses notions plus avances. Nous avons tudi le
fonctionnement du Framework .NET, appris dclarer des variables et a implmenter des structures
slectives (if else, switch case ) et itratives (les boucles).
Nous avons galement vu que le langage C# encore jeune, tait un langage qui bnficiait de
frquentes modifications visant amliorer ses services et quil possdait tous les critres dun
langage davenir. En effet cest un langage, simple et performant, parfaitement adapt la
plateforme .NET.
Dans le prochain chapitre, nous aborderons des notions avances du langage C# tel que des
collections, la gestion des exceptions, ainsi que le concept dobjets et de classes.