Documente Academic
Documente Profesional
Documente Cultură
C# : Concepts avancs
1
Plan
1. Quelques notions
2. Les tableaux
3. Les collections
4. Les interfaces
5. La gestion des exceptions
6. Prsentation des vnements
2
Les Structures
Declaration :
struct Point
{
public int x, y; // champs publiques
Point(int x, int y) { this.x = x; this.y = y; } // constructeur publique
void MoveTo(int a, int b) { x = a; y = b; } // mthodes
}
Utilisation :
3
Differences entre Classes et Structures
Classes Structures
Type rfrence Type valeur
(mmoris dans le tas) (mmoris dans la pile)
supporte l'hritage (toutes les classes pas d'hritage mais compatible avec
hritent de Object) Object
Plusieurs constructeurs Un seul constructeur
peut implmenter les interfaces peut implmenter les interfaces
peut avoir un destructeur pas de destructeur
Les structs peuvent implmenter une interface mais ils ne peuvent pas
hriter d'un autre struct. Pour cette raison, les membres de struct ne
peuvent pas tre dclars comme protected.
4
Boxing-unboxing
Les types valeurs int, struct, enum sont compatible avec object.
Boxing :
encapsule un int de valeur 3 dans un
object obj =3;
objet "object" et l'enregistre sur le tas.
Unboxing :
int a = (int) obj; //cast
5
Les conversion de types
Type Double
Type Float
Type Decimal
Type Long
Type Int, Uint
Conversion avec perte Type Short Conversion sans perte
de donnes possible : de donnes : Widening
Narrowing (explicites) Type byte, Char, sbyte (implicites)
6
Les outils de conversion de types
mthode Descriptif
Type.ToString() Convertit un objet en chaine de caractres et
inversement. Parse peut lever une exception.
Type.Parse()
Oprateur (type) pour effectuer un cast. Convertit les types qui dfinissent des oprateurs
de conversions explicites
7
Loprateur is
8
Loprateur as
9
La classe String
string s = Ses";
10
Les tableaux
11
Dfinition dun tableau
12
Cration dun tableau
int[] monTableauEntier;
Pour le crer, il faut ensuite linstancier
int[ ] nombres = new int[5];
13
Initialisation et accs aux membres du
tableau
Initialisation du tableau
14
Parcours du tableau via linstruction
foreach
15
Passage de tableaux en paramtres
...
// pe est lobjet fournissant Somme()
...
int valeur = pe.Somme( 1, 3, 5, 7, 9, 11 );
16
Exercice: Utilisation de foreach avec un tableau
Hands-on Practice
17
Les interfaces
18
Quest ce quune interface ?
Une interface:
Est un type rfrence dfinissant un contrat
Spcifie les membres devant tre fournis par les classes ou
interfaces limplmentant
Peut contenir des mthodes, proprits et vnements
Ne fournit pas dimplmentations pour ses membres
Peut hriter de zro ou plusieurs interfaces
19
Utilisation dune interface
Dclaration de linterface
interface ICarnivore {
bool AFaim
Animal Chasse();
void Mange(Animal victime);
}
Implmentation
20
Hritage multiple dinterfaces
22
Les modificateurs daccs
23
public L'accs n'est pas limit.
try {
// code suspect
}
catch (Exception e){
// gestions des exceptions
}
finally {
// action toujours effectue
}
25
Prsentation des vnements
Les vnements
26
Les vnements
27
Les vnements
28
Les vnements
29
Fonctionnement des vnements
diteur
Dclenche un vnement pour avertir tous les objets
intresss (les abonns)
Abonn
Marque son intrt pour un vnement
Est alert lorsquun diteur dclenche un vnement
Fournit une mthode appeler lorsque lvnement est
dclench
30
Dfinition dvnements
Abonnement un vnement
PompeHydro maPompe = new PompeHydro();
PompeThermo pompe2 = new PompeThermo();
Noyau monNoyau=new Noyau();
monNoyau.SurChauffe +=
new Noyau.SurChauffeDelegate(maPompe.DclenchePompeHydro);
monNoyau.SurChauffe +=
new Noyau.SurChauffeDelegate(pompe2.DclencheSuperPompeThermo);
31
Pour rsumer
32
Livres sur la programmation C#
33
Ressources sur le Web
http://www.dotnetwire.com
http://www.csharphelp.com
http://www.csharp-station.com
http://www.c-sharpcorner.com
34
Dveloppement autour du Framework .NET
http://www.microsoft.com/net
http://msdn.microsoft.com/net
http://www.gotnet.com
35