Telechargé par Hyacinthe Kossi

alphorm-160502074111

publicité
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Formation
Découverte de C#
Chamseddine OUERHANI
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Développeur et Formateur DOTNET
alphorm.com™©
Formation C#, Découverte
C#
La syntaxe C#
Création d’une application
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
1
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Qu’est ce que le Framework .NET ?
• Présentation de Visual Studio 2015 Community
• Démonstration: Création d’une application .Net en utilisant le langage C#
alphorm.com™©
Formation C#, Découverte
C# Qu’est
ce que le Framework .NET ?
Clients
Serveurs
Le Framework .NET est une
technologie Microsoft qui prend
en charge:
• La création de la nouvelle
génération d'applications et
de services Web XML.
• Leurs exécution.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
2
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Qu’est
02/05/2016
ce que le Framework .NET ?
• Le .NET Framework se compose de :
•
Du CLR (Common Language Runtime):
Machine virtuelle : un moteur d’exécution des applications .Net.
Responsable de charger et exécuter le code des applications,
Fournit un « ramasse miettes »
Vérifie la sécurité de ces applications.
Etc.
•
D’une bibliothèque hiérarchique de classes très volumineuse :
Composants graphiques, Accès aux fichiers XML, Composants web et
asp, …
alphorm.com™©
Formation C#, Découverte
C# Qu’est
*.vb
ce que le Framework .NET ?
*.cpp
*.cs
*.fs
Common language Specification
(CLS)
Microsoft Intermediate Language
(MSIL)
Common Language Runtime (CLR)
Just in time compilation
Common Type System
(CTS)
Base Class Library
(BCL)
Code natif “Managé”
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
3
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Démo
Création d’une application console C#
avec Visual Studio Community 2015
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Qu’est ce que le Framework .NET ?
• Présentation de Visual Studio 2015
• Démonstration: Création d’une application .Net en utilisant le langage C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
4
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Présentation du formateur
• Qu’est-ce que le C#?
• Le plan Cursus C#
• Publics concernés
• Connaissances requises
• Liens des ressources logicielles
• Liens utiles
alphorm.com™©
Formation C#, Découverte
C# Présentation
du formateur
OUERHANI Chamseddine
• Email : [email protected]
• Développeur et formateur DOTNet
• Expert auditeur en sécurité des systèmes d’information
• Profil Alphorm : http://www.alphorm.com/formateur/chamseddine-ouerhani
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
5
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Qu’est-ce
02/05/2016
que le C# ?
• Le C# prononcé « cé charpe »
• C’est un langage de programmation phare créé par Microsoft en 2002.
• Il fait partie de l’ensemble « Framework .NET ».
• Dérivé de C et de C++.
• Caractéristiques:
•
Simple
•
Moderne
•
Sécurisé
•
Fortement typé
•
Orienté objet
• C# est un langage de programmation conçu pour la création d'une large gamme
d'applications qui s'exécutent sur le .NET Framework.
alphorm.com™©
Formation C#, Découverte
C#
Cursus C#
Découverte C#
Accès aux données
et interface graphique
C#, Notions Avancées
•
•
•
•
•
La syntaxe C#
Méthodes et exceptions
Les énumérations, les structures et collections
Les classes, les interfaces et génériques
Encapsulation, héritage et polymorphisme
•
•
•
•
Lecture et écriture de données locales
Accès à une base de données
Accès aux données à distance
Interface utilisateur pour une application graphique
•
•
•
•
Amélioration de la performance des applications
Intégration avec le code non géré
Notions Avancées
Les assemblages et Les types réutilisables
Chiffrement et déchiffrement des données
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
6
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Public
02/05/2016
concerné
• Ce cours s'adresse à un public de débutants désirant acquérir les bases
du langage C#.
alphorm.com™©
Formation C#, Découverte
C# Connaissances
requises
• Si vous êtes novice en programmation ou en C#, ce cours vous propose
une pédagogie d’apprentissage vous permettant de découvrir le
langage C#.
• Si
vous avez déjà des connaissances sur les concepts de
programmation en général, vous pouvez confirmer vos connaissances
et les mettre en pratique à travers ce cours.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
7
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Liens
02/05/2016
des ressources logicielles
• Visual Studio 2015 version Community
• https://www.visualstudio.com/fr-fr/downloads/download-visual-
studio-vs.aspx
alphorm.com™©
Formation C#, Découverte
C# Liens
utiles
• https://mva.microsoft.com/
• http://www.codeplex.com/ (Ang)
• https://msdn.microsoft.com/fr-fr/library/ms123401.aspx
• borntolearn.mslearn.net (Ang)
• http://codes-sources.commentcamarche.net/c-net-13
• stackoverflow.com (Ang)
• https://openclassrooms.com/
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
8
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Are you ready ? ☺
alphorm.com™©
Formation C#, Découverte
C#
La syntaxe C#
Types de données,
opérateurs et expressions
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
9
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Les versions du C#
• Les types de données prédéfinis
• Expressions, opérandes et opérateurs en C#
• Déclaration de variable et affectation de valeur à une variable
• Conversions de types de données en C#
• Démonstration : manipuler les types de données en C#
alphorm.com™©
Formation C#, Découverte
C# Les
versions du C#
Le C# et le .NET ont été par Anders Hejlsberg né à Copenhague au Danemark
(le créateur du langage Delphi ) alors employé chez Microsoft.
La version du langage
Spécificité
C# 1, Visual Studio .NET 2002 :
Première version.
C# 1.1, Visual Studio .NET 2003 :
#line pragma et commentaires de documents xml.
C# 2, Visual Studio .NET 2005 :
Méthodes anonymes, génériques, types Nullable, iterateurs / rendement ,
classes static, variance co/contra pour les délégués.
C# 3, Visual Studio .NET 2008 :
expressions lambda, méthodes d’extension, types anonymes, propriétés
automatiques, Language Integrated Query (LINQ), types anonymes,
inférence de type de variable var locale, LINQ.
C# 4, Visual Studio .NET 2010 :
Dynamic, arguments nommés, paramètres facultatifs, variance.
C# 5, Visual Studio .NET 2012 :
Async / await, attributs des information sur l’appelant.
Visual Studio .NET 2013 :
Correctifs de bogues, améliorations des performances et aperçus des
technologies de la plateforme des compilateurs .NET (« Roslyn »).
C# 6, Visual Studio .NET 2015 :
Version actuelle.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Anders Hejlsberg
alphorm.com™©
10
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
types de données prédéfinis
Types valeur de base
Type
Taille
Intervalle
Utilisation
Type .NET
Framework
char
2 octets
Caractères
System.Char
byte
1 octet
0 à 255
Nombres entiers
System.Byte
sbyte
1 octet
-128 à 127
Nombres entiers
System.SByte
short
2 octets
-32 768 à 32 767
Nombres entiers
System.Int16
ushort
2 octets
0 à 65 535
Nombres entiers
System.UInt16
int
4 octets
-2 147 483 648 à 2 147 483 647
Nombres entiers
System.Int32
uint
4 octets
0 à 4 294 967 295
Nombres entiers
System.UInt32
long
8 octets
-9 223 372 036 854 775 808 à 9 223 372 036
854 775 807
Nombres entiers
System.Int64
ulong
8 octets
0 à 18 446 744 073 709 551 615
Nombres entiers
System.UInt64
float
4 octets
±1.5 × 10−45 à ±3.4 × 1038
Nombres réels (précision à 7 chiffres)
System.Single
double
8 octets
±5.0 × 10−324 à ±1.7 × 10308
Nombres réels (précision à 15-16 ch)
System.Double
decimal
16 octets
±1.0 × 10−28 à ±7.9 × 1028
Nombres réels (précision à 28-29 ch)
System.Decimal
bool
un octet
false, true
string
2 octets
System.Boolean
Chaîne de caractères
alphorm.com™©
Formation C#, Découverte
C# Type
*.vb
System.String
C# Vs Type .NET ?
*.cpp
*.cs
*.fs
Common language Specification
(CLS)
Common Type System
(CTS)
Microsoft Intermediate Language
(MSIL)
Common Language Runtime (CLR)
Just in time compilation
Base Class Library
(BCL)
Code natif “Managé”
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
11
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Expressions,
02/05/2016
opérandes et opérateurs
Expressions :
opérateurs
A+B
Opérandes
X – Y / 2
Opérandes
alphorm.com™©
Formation C#, Découverte
C# Opérateurs
Catégorie d'opérateurs
Opérateurs
Primaire
x.y,f(x),a[x],x++,x--,new,typeof,checked,unchecked,default(T),délégué,sizeof,->
Unaire
+x,-x,! X,~x,++x,--x,(T)x,attendez,&x,*x
Multiplicative
x * y ,x / y ,x % y
Additive
X + y,x - y
Shift
X << y,X >> y
Relationnel et test de type
X < y,X > y,X <= y,X >= y,est,as
Égalité
X == y,X ! = y
AND logique
X et y
XOR logique
X^y
OR logique
X|y
AND conditionnel
X && y
OR conditionnel
X || y
Fusion nulle
X??y
Conditionnel
?:
Assignation et expression
lambda
x = y,X + y,X )= y,X *= y,X/= y,X %= y,X &= y,X |= y,X ^= y,X <<= y,X >>= y,=>
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
12
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Déclaration
02/05/2016
et affectation de variables
• Une variable représente une valeur numérique, de chaîne ou un objet
d'une classe.
• La valeur que la variable stocke peut changer, mais le nom demeure.
•
Déclaration de variable:
•
Assignation de valeur à une variable:
•
Déclaration implicite d’une variable:
alphorm.com™©
Formation C#, Découverte
C# Conversions
de types
• C# est typé statiquement lors de la compilation : une fois déclarée, une variable ne peut
donc plus être déclarée une deuxième fois ou utilisée pour stocker des valeurs d'un autre
type, sauf si ce type peut être converti au type de la variable.
• Conversions implicites : aucune syntaxe spéciale n'est requise parce que la conversion
est de type sécurisée et que les données ne seront pas perdues.
• Conversions explicites (casts) : les conversions explicites requièrent un opérateur de
cast. Le transtypage est requis lorsque les données peuvent être perdues lors de la
conversion, ou lorsque la conversion peut ne pas réussir pour d'autres raisons.
• Conversions avec les classes d'assistance : entre des types non compatibles, tels que
des entiers et des objets System.DateTime on utilise la classe System.BitConverter, la
classe System.Convert et les méthodes Parse des types numériques intégrés,
comme Int32.Parse.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
13
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Les versions du C#
• Les types de données en C#
• Expressions, opérandes et opérateurs en C#
• Déclaration de variable et affectation de valeur à une variables
• Conversions de types de données en C#
• Démonstration: manipuler les types de données en C#
alphorm.com™©
Formation C#, Découverte
C#
La syntaxe C#
Le type tableau
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
14
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Le type tableau
• Propriétés des tableaux
• Démonstration: Implémenter les tableaux en C#.
Formation C#, Découverte
C# Le
alphorm.com™©
type tableau
• Les tableaux sont des collections ordonnées d'éléments de même type de
données.
Tableaux unidimensionnels
Tableaux multidimensionnels
Tableaux en escalier
ou non rectangulaires
Chaque ligne peut contenir un nombre différent de colonnes.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
15
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Propriétés
02/05/2016
des tableaux
• Un tableau possède les propriétés suivantes :
Un tableau peut être Unidimensionnel, Multidimensionnel ou En escalier.
Le nombre de dimensions et la longueur de chaque dimension sont des valeurs
établies lorsque l'instance de tableau est créée. Ces valeurs ne peuvent pas être
modifiées pendant la durée de vie de l'instance.
Les valeurs par défaut des éléments de tableau numériques sont égales à zéro et les
éléments de référence ont la valeur Null.
Un tableau en escalier est un tableau de tableaux, et par conséquent ses éléments sont
des types référence et sont initialisés à null.
Les tableaux sont indexés à partir de zéro : un tableau avec n éléments est indexé
de 0 à n-1.
Les éléments du tableau peuvent être de n'importe quel autre type, y compris un type
tableau.
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Le type tableau
• Propriétés des tableaux
• Démonstration: Implémenter les tableaux en C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
16
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
La syntaxe C#
Le type chaîne de caractères
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Chamseddine OUERHANI
Développeur et Formateur DOTNET
Formation C#, Découverte
alphorm.com™©
C# Plan
• Le type chaîne de caractères
• Démonstration: manipuler les chaînes de caractères en C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
17
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Le
02/05/2016
type chaîne de caractères
• Une chaîne est un objet de type String dont la valeur est du texte.
(En interne, le texte est stocké comme une collection en lecture seule séquentielle d'objets Char.)
• La propriété Length d'une chaîne représente le nombre d’objets Char qu’elle contient.
• Concaténation de chaîne de caractères
• Bonnes pratiques :
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Le type chaîne de caractères
• Démonstration: manipuler les chaînes de caractères en C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
18
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
La syntaxe C#
Les instructions de sélection
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
C# Plan
• Les instructions en C#
• Instruction de déclaration et d’expression
• Les instructions de sélection
• Instruction conditionnelle (if – else)
• Structure de choix (switch – case)
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
19
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
instructions en C#
• Les actions effectuées par un programme sont exprimées dans des instructions.
• Le code C# se compose d'instructions qui comprennent des mots clés C# et des
expressions.
• Une instruction peut être constituée :
•
•
D'une ligne unique de code qui se termine par un point-virgule .
D'une série d'instructions sur une ligne dans un bloc .
Un bloc d'instructions est placé entre accolades { } et peut contenir des blocs
imbriqués.
• L'ordre dans lequel les instructions sont exécutées dans un programme est appelé
flux de contrôle ou flux d'exécution.
alphorm.com™©
Formation C#, Découverte
C# Instruction
de déclaration et d’expression
• Une instruction de déclaration introduit
une nouvelle variable ou constante.
Une déclaration de variable peut
éventuellement assigner une valeur à la
variable.
Lors de la déclaration d’une constante,
l'assignation est requise.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
20
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Instruction
02/05/2016
conditionnelle
• Une instruction conditionnelle identifie l'instruction à exécuter en fonction de la valeur
booléenne retournée par une expression (condition).
if - else
alphorm.com™©
Formation C#, Découverte
C# Structure
de choix
• switch est une instruction à choix multiple qui identifie l'instruction à exécuter
en fonction de la valeur d'une expression donnée.
• Le switch est un raccourci d'écriture d'un if imbriqué.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
21
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Les instructions en C#
• Instruction de déclaration et d’expression
• Les instructions de sélection
• Instruction conditionnelle (if – else)
• Structure de choix (switch – case)
alphorm.com™©
Formation C#, Découverte
C#
La syntaxe C#
Les instructions d'itération
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
22
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Les instructions d’itération
• Les espaces de noms (namespaces)
• Squelette d’un programme en C#
alphorm.com™©
Formation C#, Découverte
C# Structures
itératives
Les instructions d'itération permettent d'effectuer à plusieurs reprises une boucle
à travers des collections telles que des tableaux, ou d'exécuter le même jeu
d'instructions jusqu'à ce qu'une condition spécifiée soit remplie.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
23
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Structures
02/05/2016
itératives
Boucle for
Boucle foreach
Boucle while
Boucle do while
Formation C#, Découverte
C# Les
alphorm.com™©
espaces de noms
• Un espace de nom « namespace » est une section du code identifié avec un
nom spécifique.
• Il regroupe des variables et des fonctions, des classes, des structures, des
interfaces, etc.… dans un même ensemble.
• Les espaces de noms sont employés de deux manières.
•
Le .NET Framework utilise des espaces de noms pour organiser ses nombreuses classes.
•
Déclarer ses propres espaces de noms pour contrôler la portée des noms de classes et de
méthodes dans les projets de programmation volumineux.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
24
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Squelette
02/05/2016
d’un programme en C#
• Les programmes C# peuvent contenir un ou
plusieurs fichiers.
• Chaque fichier peut comporter zéro ou plusieurs
espaces de noms.
• Un espace de noms peut contenir des types
comme :
Des classes
Des structures
Des interfaces
Des énumérations
Des délégués
D'autres espaces de noms.
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Les instructions d’itération
• Les espaces de noms (namespaces)
• Squelette d’un programme en C#
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
25
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
La syntaxe C#
Le débogage avec
Visual Studio 2015
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
C# Plan
• Les points d’arrêt (breakpoints) en Visual Studio 2015
• Démonstration: déboguer un programme en C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
26
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Les points d’arrêt (breakpoints) en Visual Studio 2015
• Démonstration: déboguer un programme en C#.
alphorm.com™©
Formation C#, Découverte
C#
Méthodes et exceptions
Créer et invoquer
une méthode
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
27
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Accéder aux membres d’un type de données
• Qu’est ce qu’une méthode ?
• Les paramètres d’une méthode
• Le type de retour des méthodes
• Démonstration: créer et invoquer une méthode dans une application C#.
Formation C#, Découverte
C# Accéder
alphorm.com™©
aux membres d’un type de donnée
• L'opérateur point (.) est utilisé pour accéder aux membres (attribut, méthode) d’un type
de données.
• Il peut spécifier un membre d'un espace de noms.
• Il peut être utilisé pour accéder aux méthodes spécifiques figurant dans les
bibliothèques de classes du Framework .NET.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
28
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Qu’est
02/05/2016
ce qu’une méthode ?
Une méthode est un bloc de code, déclaré dans une classe ou un struct et qui contient une série
d'instructions. Ces instructions sont exécutées en appelant la méthode.
Une signature de méthode est composée de :
niveau d'accès tel que public ou private
modificateurs facultatifs tels que abstract ou sealed
une valeur de retour (void, int, …)
un nom de méthode
des éventuels paramètres de méthode
La méthode Main est le point d'entrée d’une application C#.
alphorm.com™©
Formation C#, Découverte
C# Les
paramètres de méthodes
• Les paramètres de méthode figurent entre parenthèses et sont séparés par des virgules.
Les parenthèses vides indiquent que la méthode ne nécessite pas de paramètres.
• En C#, les arguments peuvent être passés
aux paramètres par valeur ou par référence.
• Passage par valeur transmet une copie des
données de la variable.
• Passage par référence transmet une
référence aux données de la variable.
Chaque changement sur cette variable
induit un changement sur l’originale.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
29
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Le
02/05/2016
type de retour des méthodes
• Procédure
• Fonction
Une méthode peut retourner une valeur à l'appelant à l'aide du mot clé return.
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Accéder aux membres d’un type de données
• Qu’est ce qu’une méthode ?
• Les paramètres d’une méthode
• Le type de retour des méthodes
• Démonstration: créer et invoquer une méthode dans une application C#
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
30
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Méthodes et exceptions
Créer une méthode
surchargée
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Chamseddine OUERHANI
Développeur et Formateur DOTNET
Formation C#, Découverte
alphorm.com™©
C# Plan
• Qu’est ce qu’une méthode surchargée ?
• Créer des méthodes avec des paramètres optionnels
• Appel de méthodes en utilisant les paramètres nommés
• Créer des méthodes avec des paramètres Out
• Démonstration: Créer des méthodes surchargées dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
31
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Qu’est
02/05/2016
ce qu’une méthode surchargée ?
• La surcharge permet de créer plusieurs méthodes, portant le même nom, qui
font globalement le même traitement mais avec des paramètres différents.
alphorm.com™©
Formation C#, Découverte
C# Méthodes
avec des paramètres optionnels
• Depuis C# 4.0, il est possible de préciser une valeur par défaut pour les paramètres
d'une méthode.
• Tout appel doit fournir des arguments pour tous les paramètres obligatoires.
• Les paramètres optionnels sont définis à la fin de la liste de paramètres.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
32
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Méthodes
02/05/2016
avec des paramètres nommées
• Un argument nommé est passé avec le nom du paramètre. (Nom_du_paramètre : Argument)
• Cela permet d’éviter d'avoir à mémoriser ou à rechercher l'ordre des paramètres dans la liste.
alphorm.com™©
Formation C#, Découverte
C# Méthode
avec paramètre out
• Le paramètre de sortie out fait en sorte que les arguments soient passés par référence.
• Contrairement au mot clé « ref », out ne nécessite pas d’être initialisée avant d'être
passée.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
33
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Qu’est ce qu’une méthode surchargée ?
• Créer des méthodes avec des paramètres optionnels
• Appel de méthodes en utilisant les paramètres nommés
• Créer des méthodes avec des paramètres Out
• Démonstration: Créer des méthodes surchargées dans une application C#.
alphorm.com™©
Formation C#, Découverte
C#
Méthodes et exceptions
Gérer les exceptions
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
34
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Qu’est ce qu’une exception ?
• Gérer les exceptions avec le block try/catch
• Utiliser le block finally
• Lever une exception avec throw
• Propagation des exceptions
• Démonstration: Gérer les exceptions dans une application C#.
Formation C#, Découverte
C# Les
alphorm.com™©
exceptions
• Les exceptions sont utilisées pour indiquer les situations inattendues, exceptionnelles ou erreur qui
surviennent pendant l'exécution d'un programme.
• Il existe deux types d'exception :
Les exceptions générées par un programme en exécution.
Les exceptions générées par le Common Language Runtime.
• La classe Exception est la classe de base des exceptions. Plusieurs classes d'exceptions héritent
directement d'Exception, parmi lesquelles ApplicationException et SystemException. Ces deux classes
forment la base de la quasi-totalité des exceptions runtime.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
35
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Gérer
02/05/2016
les exceptions avec le block Try/Catch
• Le but d'un bloc try-catch est d'intercepter et de gérer une exception générée
par un code actif.
Formation C#, Découverte
C# Utiliser
alphorm.com™©
le block finally
• Problématique: Try-Catch ne permet
pas de garantir l’exécution d’une
instruction dans le code si jamais une
exception nous fait sortir du bloc.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
36
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Utiliser
02/05/2016
le block finally
• Solution: le mot-clé finally permet de
résoudre ce problème en insérant
l’instruction dans le bloc finally. Le
contenu de ce bloc est exécuté si une
exception intervient ou pas.
Formation C#, Découverte
C# Lever
alphorm.com™©
une exception avec throw
L'instruction throw sert à signaler la présence d'une situation anormale (exception)
pendant l'exécution du programme.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
37
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Propagation
des exceptions
Formation C#, Découverte
C# Ce
02/05/2016
alphorm.com™©
qu’on a couvert
• Qu’est ce qu’une exception ?
• Gérer les exceptions avec le block try/catch
• Utiliser le block finally
• Lever une exception avec throw
• Propagation des exceptions
• Démonstration: Gérer les exceptions dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
38
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Les structures, collections
et événements
Le type énumération
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
C# Plan
• Le type énumération
• Démonstration: manipuler les énumération dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
39
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Le
02/05/2016
type énumération
• Le type énumération déclaré avec le mot clé enum est un type distinct constitué d’un
jeu de constantes intégrales nommées dit « liste d'énumérateurs ».
• Chaque énumération possède un type sous-jacent du type : byte, sbyte, short, ushort, int
(par défaut), uint, long ou ulong.
• Le premier énumérateur prend la valeur 0 et le N ième prend la valeur n-1.
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Le type énumération
• Démonstration: manipuler les énumération dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
40
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Les structures, collections
et événements
Les structures
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
C# Plan
• Les structures
• Accessibilité du code
• Démonstration: manipuler les structures dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
41
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
structures
• Le type struct représente des structures de données pouvant contenir des données
membres et des méthodes membres.
• Il est défini à l'aide du mot clé struct dans:
Un espace de nom
Une classe
Une autre structure
• Dans une structure on peut déclarer les membres suivant:
•
•
•
•
•
•
•
•
•
Des champs
Des constantes
Des propriétés
Des méthodes
Des constructeurs
Des événements
Des indexeurs
Des opérateurs
Des types imbriqués.
alphorm.com™©
Formation C#, Découverte
C# Accessibilité
du code
• Il est important de limiter l'accessibilité du code afin que seul le code client
prévu puisse y accéder en utilisant les modificateurs d’accès :
public, internal et private.
Public accès à la structure depuis tout autre code du même assembly ou d'un autre
assembly qui y fait référence.
Internal accès à la structure depuis le code de la même assembly.
Private (par défaut) accès à la structure depuis le code de la même structure.
• Un seul modificateur d'accès est autorisé pour un membre ou un type.
• Les espaces de noms ne présentent aucune limitation d'accès.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
42
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Les structures
• Accessibilité du code
• Démonstration: manipuler les structures dans une application C#.
alphorm.com™©
Formation C#, Découverte
C#
Les structures, collections
et événements
Les indexeurs
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
43
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Les indexeurs
• Démonstration: manipuler les indexeurs en C#.
Formation C#, Découverte
C# Les
alphorm.com™©
indexeurs
• Les indexeurs permettent aux instances
d'une structure ou d'une classe d'être
indexées exactement comme des tableaux.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
44
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Les indexeurs
• Démonstration: manipuler les indexeurs en C#.
alphorm.com™©
Formation C#, Découverte
C#
Les structures, collections
et événements
Les collections
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
45
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Regroupement d’objets
• L’espace de nom System.Collections
Les classes de System.Collections
Les classes de System.Collections.Specialized
• Démonstration: utiliser la collection ArrayList dans une application C#.
alphorm.com™©
Formation C#, Découverte
C# Regroupement
d’objets et collections
• Il existe deux manières pour créer, grouper et gérer des objets :
Grouper des objets dans un tableau pour un nombre fixe d'objets.
Grouper des objets dans une collection avec la possibilité d’augmenter ou diminuer leurs nombre de façon dynamique.
Espace de noms
Description
System.Collections
contient des interfaces et classes qui définissent des collections d'objets non spécifiquement typés.
Exemple: les listes, les files d'attente, les tableaux de valeurs de bit, les tables de hachage et les dictionnaires.
System.Collections.Specialized
contient des collections spécialisées et fortement typées ;
Exemple: un dictionnaire de liste liée, un vecteur de bites et des collections qui ne contiennent que des
chaînes.
System.Collections.Generic
contient des interfaces et des classes permettant aux utilisateurs de créer des collections fortement typées.
Celles-ci fournissent une meilleure sécurité des types et de meilleures performances que les collections
fortement typées non génériques.
System.Collections.ObjectModel
contient des classes qui peuvent être utilisées comme des collections dans le modèle objet d'une
bibliothèque réutilisable. A Utiliser lorsque les propriétés ou les méthodes retournent des collections.
System.Collections.Concurrent
fournit plusieurs classes de collection thread-safe qui doivent être utilisées à la place des types
correspondants dans les espaces de noms System.Collections et System.Collections.Generic chaque fois que
plusieurs threads accèdent simultanément à la collection.
• Les collections sont au cœur du développement des applications graphiques ;
les contrôles tels que ListBox, les menus,… sont généralement liés à des collections.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
46
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Regroupement d’objets
• L’espace de nom System.Collections
Les classes de System.Collections
Les classes de System.Collections.Specialized
• Démonstration: utiliser la collection ArrayList dans
une application C#.
alphorm.com™©
Formation C#, Découverte
C#
Les structures, collections
et événements
Les événements
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
47
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Les délégués
• Les événements
Formation C#, Découverte
C# Les
alphorm.com™©
délégués
• Un délégué est un type qui encapsule une méthode en lui faisant référence .
• Déclaré avec le mot clé delegate, il permet de définir une signature de méthode
pour pointer vers n’importe quelle méthode respectant cette signature.
• Il est possible d’appeler la méthode par le biais de l'instance du délégué.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
48
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
événements
• L'une des utilisations les plus importantes des délégués est la programmation
d'événements.
• Un événement est déclaré avec le mot clé event. Il constitue un type spécial de
délégué multicast.
• Les applications à interfaces graphiques sont souvent associées aux concepts de
programmation événementielle qui consiste à réagir en fonction des évènements.
Exemple : un utilisateur qui clique sur un bouton de l’interface graphique déclenche un évènement.
- L'objet qui déclenche l'événement est appelé éditeur .
- L'objet qui capture l'événement et y répond est appelé abonnées.
• Les événements font parti d’un type de programmation à part entière, on parle de
programmation événementielle.
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Les délégués
• Les événements
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
49
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Les classes, les interfaces
et génériques
Les classes
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
C# Plan
• Les classes
• Les objets
• Les champs
• Les accesseurs
• Les constructeurs
• Démonstration: utiliser la notion de classe dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
50
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
classes
• Une classe est une construction de base du Common Type System (CTS) dans le .NET
Framework.
• Elle permet aussi de créer ses propres types personnalisés en regroupant dans une unité
logique des:
Champs, Constantes, Propriétés, Méthodes, Constructeurs, Destructeurs, Événements, Indexeurs,
Opérateurs, Types imbriqués.
• Déclaration d’une classe (mot clé class)
• Les classes sont internal par défaut.
alphorm.com™©
Formation C#, Découverte
C# Les
objets
• Un objet est une entité concrète basée sur une classe, quelquefois appelée une instance d'une classe.
• Un objet est créé à l'aide du mot clé new suivi du nom de la classe sur lequel l'objet sera basé
(constructeur).
Classe
(Plan)
Instanciation
Objet 1
Objet 2
Concrétisati
on du Plan
Concrétisati
on du Plan
…
• Instanciation: Le fait de créer une instance (un objet) d'un type class. C'est donc le fait de créer une
nouvelle variable objet.
• Un objet est une instance d'un ensemble potentiellement infini d'objets ayant des traits communs :
mêmes méthodes et mêmes attributs.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
51
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
champs
• Un champ appelé aussi attribut est une variable ou une constante.
• L’ensemble de champs contribue à la définition de la structure interne d'un objet.
• Les constantes sont déclarées avec le modificateur const représentent des valeurs immuables qui sont
connues au moment de la compilation et ne changent pas pendant la durée de vie du programme.
alphorm.com™©
Formation C#, Découverte
C# Les
accesseurs
• L'accesseur d'une propriété contient les instructions
exécutables associées à l'obtention (lecture ou calcul) ou à la
définition (écriture) de la propriété.
• Les déclarations d'accesseurs peuvent
accesseur get, un accesseur set ou les deux.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
contenir
un
alphorm.com™©
52
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
constructeurs
• À chaque fois qu'une classe est instanciée à l'aide de
l'opérateur new, un constructeur par défaut est appelé.
• Le constructeur porte le même nom que la classe.
• Habituellement, le constructeur sert à initialiser les
données membres du nouvel objet.
• Surcharger un constructeur : une classe peut avoir
plusieurs constructeurs qui prennent des arguments
différents.
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Les classes
• Les objets
• Les champs
• Les accesseurs
• Les constructeurs
• Démonstration: utiliser la notion de classe dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
53
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Les classes, les interfaces
et génériques
Type valeur et
type référence
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
C# Plan
• Type valeur et type référence en C#
• Struct Vs Class
• Le boxing
• Le mot clé static
• Démonstration: Manipuler les classes dans une application C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
54
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Type
02/05/2016
valeur et type référence
• Une variable, au niveau physique, est un emplacement mémoire, repéré par une
adresse binaire.
• Au niveau abstrait, c’est une association entre un nom et une zone mémoire dont la
taille et l’interprétation de son contenu dépendent du type de la variable.
• Rappel: En C#, les arguments peuvent être passés aux paramètres par valeur ou par
référence.
- Passage par valeur transmet une copie des données de l’argument.
- Passage par référence transmet une référence aux données de l’argument.
Chaque changement sur cet argument induit un changement sur l’originel.
• En général en C#:
• Le langage de programmation C# compte 2 types de variable :
Les variables de type valeur stockent directement des données
Les variables de type référence stockent les références aux données (considérés
comme des objets)
alphorm.com™©
Formation C#, Découverte
C# Type
valeur et type référence
• Avec les types référence, deux variables peuvent faire référence au même objet ;
par conséquent, les opérations sur une variable affectent l'autre variable.
• Avec les types valeur, chaque variable possède sa propre copie de données, et les
opérations sur une variable ne peuvent pas affecter l'autre.
Sur la pile (stack)
Objet o3
int a
Objet o2
Char c
Objet o1
Int y
long x
Sur le tas (heap)
@3
254
@1
‘m’
@1
254
123
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
« Eric »
« Alice »
alphorm.com™©
55
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Class Vs Struct
Les structures (type valeur) conviennent mieux aux petites structures de données qui
ne sont pas censées être modifiées après la création de la structure.
Les classes (type référence) sont plus riches que les types struct et donc utilisées pour
modeler un comportement plus complexe ou les données sont sensées être modifiées
après instanciation.
alphorm.com™©
Formation C#, Découverte
C# Le
boxing
• Le concept de boxing et de unboxing repose sur la vue unifiée par C# du système de type
(CTS), dans lequel une valeur de n'importe quel type peut être traitée en tant qu'objet.
• Le boxing : consiste à convertir un type valeur en type object.
• L'unboxing : est une conversion explicite du type object en un type valeur.
L'élément qui est unboxed doit être une référence à un objet précédemment créé par boxing d'une instance de ce
type valeur.
Sur la pile (stack)
Sur le tas (heap)
Int
123
j
o
i
123
@
123
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
56
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Le
02/05/2016
mot clé static
pi = 3.14
c1
rayon = 4
pi = 3.14
c2
rayon = 6
pi = 3.14
c1
rayon = 4
c2
rayon = 6
cn
rayon = x
Formation C#, Découverte
C# Le
alphorm.com™©
mot clé static
• Une classe statique est fondamentalement identique à une classe non statique sauf qu’une
classe statique ne peut pas être instanciée.
• Une classe statique peut contenir uniquement des membres statiques.
• Lors de l’exécution du programme, une copie de la classe statique est chargée dans la
mémoire, et ses membres sont accessibles via le nom de classe.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
57
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Type valeur et type référence en C#
• Class Vs Struct
• Le boxing
• Le mot clé static
• Démonstration: Manipuler les classes dans une application C#.
alphorm.com™©
Formation C#, Découverte
C#
Les classes, les interfaces
et génériques
Les interfaces
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
58
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Qu’est ce qu’une interface ?
• Implémenter une interface
• Interface IComparable
• Interface Icomparer
• Récapitulatif des types en C#
• Démonstration: manipuler les interfaces en C#.
Formation C#, Découverte
C# Qu’est
alphorm.com™©
ce qu’une interface ?
• Une interface est déclarée avec le mot clé interface.
• Une interface est un contrat qui :
• contient les signatures d’événements, de méthodes, de propriétés ou d'indexeurs sans
les implémenter.
• ne contient ni champ ni attribut.
• En termes d'accessibilité, une interface est public ou internal .
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
59
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Implémenter
02/05/2016
une interface
• Une interface ne peut pas être instanciée directement.
• Les membres d’une interface sont implémentés par toute classe ou structure qui
implémente l'interface.
• Les membres d'interface sont automatiquement publics, et ne peuvent pas inclure les
modificateurs d'accès.
• Une interface peut elle-même implémenter une ou plusieurs interfaces.
• Implémenter un membre d'interface explicitement : créer un membre de classe qui n'est
appelé qu'à travers l'interface
alphorm.com™©
Formation C#, Découverte
C# Implémenter
l’interface IComparable
• L’interface IComparable compare l'instance actuelle avec un autre objet du même type et
retourne un entier qui indique si l'instance actuelle précède ou suit un autre objet ou se
trouve à la même position dans l'ordre de tri.
• Paramètres obj : Objet à comparer à cette instance.
• Valeur retournée : Valeur qui indique l'ordre relatif des objets comparés. La valeur de retour
a les significations suivantes :
Inférieur à zéro (-1) Cette instance précède obj dans l'ordre de tri.
Zéro Cette instance se produit dans la même position dans l'ordre de tri que obj.
Supérieure à zéro (1) Cette instance suit obj dans l'ordre de tri.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
60
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Implémenter
02/05/2016
l’interface IComparer
• L’interface IComparer permet de personnaliser l'ordre de tri d'une collection.
• Compare deux objets et retourne une valeur indiquant si l'un d'entre eux est inférieur, égal
ou supérieur à l'autre.
• Paramètres :
x: Premier objet à comparer.
y: Second objet à comparer.
• Retourne : Entier signé qui indique les valeurs relatives de x et y.
Entier inférieur à zéro
x est inférieur à y.
Zéro x est égal à y.
Supérieure à zéro x est supérieur à y.
alphorm.com™©
Formation C#, Découverte
C# Récapitulatif
des types en C#
• En C#, les variables de type valeur contiennent directement leurs données.
• Les variables de type référence font référence à leurs données (objets).
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
61
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Qu’est ce qu’une interface ?
• Implémenter une interface
• Interface IComparable
• Interface Icomparer
• Récapitulatif des types en C#
• Démonstration: manipuler les interfaces en C#.
alphorm.com™©
Formation C#, Découverte
C#
Les classes, les interfaces
et génériques
Les collections
génériques
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
62
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Les génériques
• Contraintes sur les paramètres de type
• Les collections génériques
• Démonstrations: manipuler les génériques dans une applications C#.
Formation C#, Découverte
C# Les
alphorm.com™©
génériques
• Les génériques sont une fonctionnalité intégré au Framework .NET depuis la version C# 2.0.
• Les génériques introduisent le concept de paramètres de type qui permet de manipuler des objets dont
on ignore concrètement le type.
• Le paramètre de type sera argumenté lors de l'utilisation du générique (méthode, classe…).
• Pour chaque argument de type utilisé, le compilateur génèrera une nouvelle version du générique.
• Par convention, un identificateur de type est représentés avec T entre chevrons < > ,pour donner < T >.
• Un générique peut comporter plusieurs identificateurs de type entre chevrons <T , U , W >.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
63
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
génériques
• Les paramètres de type peuvent être appliqué à une interface, une classe, une structure,
un délégué, ou une méthode.
alphorm.com™©
Formation C#, Découverte
C# Contraintes
sur les paramètres de type
• Lors de la définition d’un générique, on peut appliquer des restrictions (dites contraintes)
aux identificateurs de type à l'aide du mot clé contextuel where.
where T : struct
L'argument de type doit être un type valeur.
where T : class
L'argument de type doit être un type référence
where T : new()
L'argument de type doit avoir un constructeur sans paramètre
public.
where T : <nom d'interface>
L'argument de type doit être ou implémenter l'interface
spécifiée.
where T : <nom de classe de base>
L'argument de type doit être ou dériver de la classe de base
spécifiée.
where T : U
L'argument de type fourni pour T doit être ou dériver de
l'argument fourni pour U.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
64
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
02/05/2016
collections génériques
• Les génériques sont le plus souvent utilisés avec des collections et des méthodes qui
fonctionnent sur eux.
• L'espace de noms System.Collections.Generic comporte les classes représentant les
collections génériques.
• Les collections génériques mettent en vigueur le typage fort en autorisant uniquement
l'ajout du type de données souhaité.
• Les collections génériques permettent de reporter la spécification du type réel au moment
de la création des objets.
• Par rapport à leurs homologues non génériques, les génériques combinent :
- La robustesse d’un typage fort
- La clarté du code (plus de casts)
- La performance en supprimant les boxing/unboxing
- La sécurité d’une vérification accrue à la compilation
- Un niveau de réutilisabilité
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Les génériques
• Contraintes sur les paramètres de type
• Les collections génériques
• Démonstrations: manipuler les génériques dans une applications C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
65
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Encapsulation, héritage
et polymorphisme
Encapsulation
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
C# Plan
• Le concept d’abstraction
• Le principe d’encapsulation
• Démonstration: Instancier une classe en C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
66
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Le
02/05/2016
concept d’abstraction
‘ La Citroën C4 est une voiture ’
• « La Citroën C4 » est un terme concret.
• « Une voiture » est un concept abstrait.
Un abstrait dérive d’une abstraction et s’oppose à concret.
concret
abstrait
l’homme
l’humanité
le blanc
la blancheur
L'existant
L’existence
• L’abstraction est une pratique (un processus mental) utilisé en POO pour isoler des concepts
abstraits tels que:
une voiture, une table ou un étudiant…
• Un abstrait sera ensuite implémentés (définis) dans une classe (données et comportements).
Classe
(Plan)
• Une classe sera instanciée (concrétisé) en un objet.
La classe est un moule et l’objet est ce qui est moulé à partir de cette classe.
Objet
Concrétisati
on du Plan
N.B: La POO est un paradigme basé sur la notion de l’objet et sa séparation de sa définition.
Formation C#, Découverte
C# Le
alphorm.com™©
principe d’encapsulation
• C# prend en charge les 3 principes de la POO : L'encapsulation, l'héritage et le polymorphisme.
L'encapsulation représente le premier pilier de la POO.
• Constat: une classe (un abstrait) regroupe des champs, des propriétés, méthodes et autres membres
liés, le tout réuni sous le couvert d'une seule et même unité.
• Problématique: un utilisateur a besoin d’utiliser cette unité et de raisonner en termes d'abstractions. Il
n'a pas à se soucier de la représentation physique de l’unité et de comprendre ses rouages.
• Solution: Une unité doit cacher ses données et ses comportements à l’utilisateur et lui laisser une
interface bien définie pour profiter de ce que sait faire cette unité. Il faut alors encapsuler un abstrait.
L’encapsulation c’est la séparation de l’implémentation d’un abstrait de l’utilisation de son instance.
• L’encapsulation permet de limiter le risque d'erreurs de codage ou d'utilisation malveillante en
spécifiant pour une unité le degré d'accessibilité de chacun de ses membres (modificateurs d'accès).
Les modificateurs d'accès: public, private, protected, internal, et protected internal.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
67
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Ce
02/05/2016
qu’on a couvert
• Le concept d’abstraction
• Le principe d’encapsulation
• Démonstration: Instancier une classe en C#.
alphorm.com™©
Formation C#, Découverte
C#
Encapsulation, héritage
et polymorphisme
Héritage et
Polymorphisme
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
Chamseddine OUERHANI
Développeur et Formateur DOTNET
alphorm.com™©
68
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Plan
• Qu’est ce que l’héritage ?
• Les modificateurs abstract et sealed
• Qu’est ce que le polymorphisme ?
• Polymorphisme d’inclusion
• Démonstration: utiliser les notions d’héritage et de polymorphisme en C#.
alphorm.com™©
Formation C#, Découverte
C# Qu’est
ce que l’héritage ?
• L'héritage est le deuxième piliers de la POO.
• Il permet de définir une classe initiale (classe de base) puis de dériver de cette classe initiale des classes
plus spécifiques (classe dérivée).
• Les classes dérivées héritent des données et des comportements de la classe de base.
classe
de base
classe
dérivée
(1)
classe
dérivée
(2)
…
(n)
• Pour accéder aux membres de la classe de base à partir d’une sous-classe on utilise le mot clé base.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
69
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Les
• Le
02/05/2016
modificateurs abstract et sealed
modificateur abstract :
Le modificateur abstract indique que l'élément a une implémentation manquante ou incomplète.
abstract peut modifier une classe, une méthode, une propriété, un indexeur ou un événement.
Une classe précédé par abstract ne peut pas être instanciée.
Une classe (non abstraite) dérivée d'une classe abstraite doit implémenter tout ses membres
abstraits.
Le mot-clé override (Redéfinition) pour implémenter les méthodes de la classe abstraite.
• Le modificateur sealed :
Le modificateur sealed (scellé): est appliqué à une classe pour empêcher sa dérivation.
•
•
Aucune classe ne peut hériter d’une classe sealed.
sealed sur une méthode ou une propriété d’une classe mère permet d’empêcher une classe fille de
les substituer et toujours utilisé avec override.
Formation C#, Découverte
C# Qu’est
alphorm.com™©
ce que le polymorphisme ?
• Étymologiquement le polymorphisme est un mot grec qui signifie plusieurs formes .
• En POO, le polymorphisme représente le troisième pilier après l'encapsulation et l'héritage.
• On peut distinguer deux types de polymorphisme :
Le polymorphisme ad-hoc: En POO surcharge (overloading ang)
Le polymorphisme universel:
•
Polymorphisme paramétrique: En POO généricité ou programmation générique: consiste à
passer des paramètres supplémentaires à l’opération. Ces paramètres ne sont plus des valeurs,
mais le type d’autres paramètres. Permettant aussi de construire des types à partir d’autre type.
•
Polymorphisme d’inclusion, sous-typage, spécialisation ou redéfinition: En POO
polymorphisme. (overriding ang) un même code peut être appliqué à des données de type
différents liées entre elles par une relation d’héritage .
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
70
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C# Polymorphisme
02/05/2016
d’inclusion
• Quand une classe dérivée hérite d'une classe de base, elle gagne toutes les méthodes, les
champs, les propriétés et les événements de la classe de base.
• Le concepteur de la classe dérivée peut choisir de:
Hériter de la méthode de classe de base la plus proche sans la substituer.
Versioning; virtual pour substituer dans une classe dérivée, l’implémentation d’une propriété, un
indexeur ou un événement .
•
Substituer les membres virtuels dans la classe de base avec le modificateur override.
•
Définir une nouvelle implémentation non virtuelle de ces membres qui masque les
implémentations de la classe de base avec le modificateur new.
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
• Qu’est ce que l’héritage ?
• Les modificateurs abstract et sealed
• Qu’est ce que le polymorphisme ?
• Polymorphisme d’inclusion
• Démonstration: utiliser les notions d’héritage et de polymorphisme en C#.
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
71
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C#
Conclusion
Découverte de C#
Site : http://www.alphorm.com
Blog : http://www.alphorm.com/blog
Chamseddine OUERHANI
Développeur et Formateur DOTNET
Formation C#, Découverte
C# Ce
alphorm.com™©
qu’on a couvert
1. La syntaxe C#
2. Méthodes et exceptions
3. Les structures, les collections et les événements
4. Les classes, les interfaces et génériques
5. Encapsulation, héritage et polymorphisme
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
72
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
02/05/2016
C# Recommandations
• Reprendre les exercices pour chaque module
• Réaliser ses propres applications C#.
• Rester connecté (Site officiel de Microsoft, blog, Forum…) pour suivre
les évolutions du langage C#.
Formation C#, Découverte
C#
alphorm.com™©
Pratiquer Pratiquer Pratiquer
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
73
Alphorm.com-Support de la
formation Programmer en C#
avec Visual Studio 2015
C#
02/05/2016
Cursus C#
Découverte C#
Accès aux données
et interface graphique
C#, Notions Avancées
•
•
•
•
•
La syntaxe C#
Méthodes et exceptions
Les structures, les collections et les événements
Les classes, les interfaces et génériques
Encapsulation, héritage et polymorphisme
•
•
•
•
Lecture et écriture de données locales
Accès à une base de données
Accès aux données à distance
Interface utilisateur pour une application graphique
•
•
•
•
Amélioration de la performance des applications
Intégration avec le code non géré
Notions Avancées
Les assemblages et Les types réutilisables
Chiffrement et déchiffrement des données
Formation C#, Découverte
C# Merci
Prochaine formation
alphorm.com™©
pour votre attention !
Formation C#, Découverte
TOUTE UTILISATION EN DEHORS
DE ALPHORM EST INTERDITE
alphorm.com™©
74
Téléchargement