74
Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015 02/05/2016 TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 1 Formation C#, Découverte alphorm.com™© C# Formation 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 alphorm.com™© C# La syntaxe C# Création d’une application Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Chamseddine OUERHANI Développeur et Formateur DOTNET

Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Embed Size (px)

Citation preview

Page 1: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 1

Formation C#, Découverte alphorm.com™©

C#

FormationDécouverte de C#

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Formation C#, Découverte alphorm.com™©

C#

La syntaxe C#

Création d’une application

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Page 2: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 2

Formation C#, Découverte alphorm.com™©

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#

Formation C#, Découverte alphorm.com™©

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.

Page 3: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 3

Formation C#, Découverte alphorm.com™©

C# Qu’est 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, …

Formation C#, Découverte alphorm.com™©

C# Qu’est ce que le Framework .NET ?*.cpp

Microsoft Intermediate Language (MSIL)

Common Language Runtime (CLR)Base Class Library

(BCL)

*.vb *.cs *.fs

Code natif “Managé”

Just in time compilation

Common language Specification (CLS)

Common Type System(CTS)

Page 4: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 4

Formation C#, Découverte alphorm.com™©

C#

Création d’une application console C#avec Visual Studio Community 2015

Démo

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Page 5: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 5

Formation C#, Découverte alphorm.com™©

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

Formation C#, Découverte alphorm.com™©

C# Présentation du formateurOUERHANI 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

Page 6: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 6

Formation C#, Découverte alphorm.com™©

C# Qu’est-ce 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.

Formation C#, Découverte alphorm.com™©

C# Cursus C#• 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

Découverte C#

Notions Avancées

• 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

Accès aux données et interface graphique

• Amélioration de la performance des applications• Intégration avec le code non géré• Les assemblages et Les types réutilisables • Chiffrement et déchiffrement des données

C#, Notions Avancées

Page 7: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 7

Formation C#, Découverte alphorm.com™©

C# Public concerné• Ce cours s'adresse à un public de débutants désirant acquérir les bases

du langage C#.

Formation C#, Découverte alphorm.com™©

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 lelangage C#.

• Si vous avez déjà des connaissances sur les concepts deprogrammation en général, vous pouvez confirmer vos connaissanceset les mettre en pratique à travers ce cours.

Page 8: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 8

Formation C#, Découverte alphorm.com™©

C# Liens des ressources logicielles

• Visual Studio 2015 version Community

• https://www.visualstudio.com/fr-fr/downloads/download-visual-studio-vs.aspx

Formation C#, Découverte alphorm.com™©

C# Liens utiles• https://mva.microsoft.com/

• https://msdn.microsoft.com/fr-fr/library/ms123401.aspx

• http://www.codeplex.com/ (Ang)

• https://openclassrooms.com/

• stackoverflow.com (Ang)

• http://codes-sources.commentcamarche.net/c-net-13

• borntolearn.mslearn.net (Ang)

Page 9: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 9

Formation C#, Découverte alphorm.com™©

C# Are you ready ? ☺

Formation C#, Découverte alphorm.com™©

C#

La syntaxe C#

Types de données, opérateurs et expressions

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Page 10: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 10

Formation C#, Découverte alphorm.com™©

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#

Formation C#, Découverte alphorm.com™©

C# Les versions du C#

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.

Le C# et le .NET ont été par Anders Hejlsberg né à Copenhague au Danemark

(le créateur du langage Delphi ) alors employé chez Microsoft.

Anders Hejlsberg

Page 11: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 11

Formation C#, Découverte alphorm.com™©

C# Les types de données prédéfinisTypes 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 System.Boolean

string 2 octets Chaîne de caractères System.String

Formation C#, Découverte alphorm.com™©

C# Type C# Vs Type .NET ?*.cpp

Microsoft Intermediate Language (MSIL)

Common Language Runtime (CLR)Base Class Library

(BCL)

*.vb *.cs *.fs

Code natif “Managé”

Just in time compilation

Common language Specification (CLS)

Common Type System(CTS)

Page 12: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 12

Formation C#, Découverte alphorm.com™©

C# Expressions, opérandes et opérateurs

�A + B

� X – Y / 2

opérateurs

Opérandes

Opérandes

Expressions :

Formation C#, Découverte alphorm.com™©

C# OpérateursCaté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,=>

Page 13: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 13

Formation C#, Découverte alphorm.com™©

C# Déclaration 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:

Formation C#, Découverte alphorm.com™©

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 autretype, sauf si ce type peut être converti au type de la variable.

• Conversions implicites : aucune syntaxe spéciale n'est requise parce que la conversionest 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 decast. Le transtypage est requis lorsque les données peuvent être perdues lors de laconversion, 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 quedes entiers et des objets System.DateTime on utilise la classe System.BitConverter, laclasse System.Convert et les méthodes Parse des types numériques intégrés,comme Int32.Parse.

Page 14: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 14

Formation C#, Découverte alphorm.com™©

C# Ce 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#

Formation C#, Découverte alphorm.com™©

C#

La syntaxe C#

Le type tableau

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Page 15: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 15

Formation C#, Découverte alphorm.com™©

C# Plan• Le type tableau

• Propriétés des tableaux

• Démonstration: Implémenter les tableaux en C#.

Formation C#, Découverte alphorm.com™©

C# Le 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.

Page 16: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 16

Formation C#, Découverte alphorm.com™©

C# Propriétés 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 êtremodifié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 sontdes 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 typetableau.

Formation C#, Découverte alphorm.com™©

C# Ce qu’on a couvert• Le type tableau

• Propriétés des tableaux

• Démonstration: Implémenter les tableaux en C#.

Page 17: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 17

Formation C#, Découverte alphorm.com™©

C#

La syntaxe C#

Le type chaîne de caractères

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDé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#.

Page 18: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 18

Formation C#, Découverte alphorm.com™©

C# Le 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 alphorm.com™©

C# Ce qu’on a couvert• Le type chaîne de caractères

• Démonstration: manipuler les chaînes de caractères en C#.

Page 19: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 19

Formation C#, Découverte alphorm.com™©

C#

La syntaxe C#

Les instructions de sélection

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Formation C#, Découverte 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)

Page 20: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 20

Formation C#, Découverte alphorm.com™©

C# Les 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.

Formation C#, Découverte alphorm.com™©

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.

Page 21: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 21

Formation C#, Découverte alphorm.com™©

C# Instruction conditionnelle• Une instruction conditionnelle identifie l'instruction à exécuter en fonction de la valeur

booléenne retournée par une expression (condition).

if - else

Formation C#, Découverte alphorm.com™©

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é.

Page 22: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 22

Formation C#, Découverte alphorm.com™©

C# Ce 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)

Formation C#, Découverte alphorm.com™©

C#

La syntaxe C#

Les instructions d'itération

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Page 23: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 23

Formation C#, Découverte alphorm.com™©

C# Plan• Les instructions d’itération

• Les espaces de noms (namespaces)

• Squelette d’un programme en C#

Formation C#, Découverte alphorm.com™©

C# Structures itérativesLes 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.

Page 24: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 24

Formation C#, Découverte alphorm.com™©

C# Structures itératives

Boucle for Boucle foreach

Boucle while Boucle do while

Formation C#, Découverte alphorm.com™©

C# Les 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, desinterfaces, 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 deméthodes dans les projets de programmation volumineux.

Page 25: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 25

Formation C#, Découverte alphorm.com™©

C# Squelette 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 alphorm.com™©

C# Ce qu’on a couvert• Les instructions d’itération

• Les espaces de noms (namespaces)

• Squelette d’un programme en C#

Page 26: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 26

Formation C#, Découverte alphorm.com™©

C#

La syntaxe C#

Le débogage avec Visual Studio 2015

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Formation C#, Découverte alphorm.com™©

C# Plan• Les points d’arrêt (breakpoints) en Visual Studio 2015

• Démonstration: déboguer un programme en C#.

Page 27: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 27

Formation C#, Découverte alphorm.com™©

C# Ce qu’on a couvert• Les points d’arrêt (breakpoints) en Visual Studio 2015

• Démonstration: déboguer un programme en C#.

Formation C#, Découverte alphorm.com™©

C#

Méthodes et exceptions

Créer et invoquer une méthode

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Page 28: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 28

Formation C#, Découverte alphorm.com™©

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 alphorm.com™©

C# Accéder 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 lesbibliothèques de classes du Framework .NET.

Page 29: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 29

Formation C#, Découverte alphorm.com™©

C# Qu’est 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.

� La méthode Main est le point d'entrée d’une application C#.

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

Formation C#, Découverte alphorm.com™©

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ésaux paramètres par valeur ou par référence.

• Passage par valeur transmet une copie desdonnées de la variable.

• Passage par référence transmet uneréférence aux données de la variable.Chaque changement sur cette variableinduit un changement sur l’originale.

Page 30: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 30

Formation C#, Découverte alphorm.com™©

C# Le type de retour des méthodes

Une méthode peut retourner une valeur à l'appelant à l'aide du mot clé return.

• Procédure • Fonction

Formation C#, Découverte alphorm.com™©

C# Ce 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#

Page 31: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 31

Formation C#, Découverte alphorm.com™©

C#

Méthodes et exceptions

Créer une méthode surchargée

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDé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#.

Page 32: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 32

Formation C#, Découverte alphorm.com™©

C# Qu’est 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.

Formation C#, Découverte alphorm.com™©

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.

Page 33: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 33

Formation C#, Découverte alphorm.com™©

C# Méthodes 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.

Formation C#, Découverte alphorm.com™©

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.

Page 34: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 34

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Formation C#, Découverte alphorm.com™©

C#

Méthodes et exceptions

Gérer les exceptions

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Page 35: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 35

Formation C#, Découverte alphorm.com™©

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 alphorm.com™©

C# Les 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éritentdirectement d'Exception, parmi lesquelles ApplicationException et SystemException. Ces deux classesforment la base de la quasi-totalité des exceptions runtime.

Page 36: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 36

Formation C#, Découverte alphorm.com™©

C# Gérer 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 alphorm.com™©

C# Utiliser 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.

Page 37: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 37

Formation C#, Découverte alphorm.com™©

C# Utiliser le block finally• Solution: le mot-clé finally permet de

résoudre ce problème en insérantl’instruction dans le bloc finally. Lecontenu de ce bloc est exécuté si uneexception intervient ou pas.

Formation C#, Découverte alphorm.com™©

C# Lever une exception avec throwL'instruction throw sert à signaler la présence d'une situation anormale (exception) pendant l'exécution du programme.

Page 38: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 38

Formation C#, Découverte alphorm.com™©

C# Propagation des exceptions

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Page 39: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 39

Formation C#, Découverte alphorm.com™©

C#

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Le type énumération

Les structures, collections et événements

Formation C#, Découverte alphorm.com™©

C# Plan• Le type énumération

• Démonstration: manipuler les énumération dans une application C#.

Page 40: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 40

Formation C#, Découverte alphorm.com™©

C# Le type énumération

• Le type énumération déclaré avec le mot clé enum est un type distinct constitué d’unjeu 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 alphorm.com™©

C# Ce qu’on a couvert• Le type énumération

• Démonstration: manipuler les énumération dans une application C#.

Page 41: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 41

Formation C#, Découverte alphorm.com™©

C#

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Les structures

Les structures, collections et événements

Formation C#, Découverte alphorm.com™©

C# Plan• Les structures

• Accessibilité du code

• Démonstration: manipuler les structures dans une application C#.

Page 42: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 42

Formation C#, Découverte alphorm.com™©

C# Les 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.

Formation C#, Découverte alphorm.com™©

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 autreassembly 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.

Page 43: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 43

Formation C#, Découverte alphorm.com™©

C# Ce qu’on a couvert• Les structures

• Accessibilité du code

• Démonstration: manipuler les structures dans une application C#.

Formation C#, Découverte alphorm.com™©

C#

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Les indexeurs

Les structures, collections et événements

Page 44: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 44

Formation C#, Découverte alphorm.com™©

C# Plan• Les indexeurs

• Démonstration: manipuler les indexeurs en C#.

Formation C#, Découverte alphorm.com™©

C# Les indexeurs• Les indexeurs permettent aux instances

d'une structure ou d'une classe d'êtreindexées exactement comme des tableaux.

Page 45: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 45

Formation C#, Découverte alphorm.com™©

C# Ce qu’on a couvert• Les indexeurs

• Démonstration: manipuler les indexeurs en C#.

Formation C#, Découverte alphorm.com™©

C#

Les collections

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Les structures, collections et événements

Page 46: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 46

Formation C#, Découverte alphorm.com™©

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#.

Formation C#, Découverte alphorm.com™©

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.

• 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.

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 deschaî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.

Page 47: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 47

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Formation C#, Découverte alphorm.com™©

C#

Les événements

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Les structures, collections et événements

Page 48: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 48

Formation C#, Découverte alphorm.com™©

C# Plan

• Les délégués

• Les événements

Formation C#, Découverte alphorm.com™©

C# Les 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éthodepour 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é.

Page 49: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 49

Formation C#, Découverte alphorm.com™©

C# Les é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 dedélégué multicast.

• Les applications à interfaces graphiques sont souvent associées aux concepts deprogrammation é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 deprogrammation événementielle.

Formation C#, Découverte alphorm.com™©

C# Ce qu’on a couvert

• Les délégués

• Les événements

Page 50: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 50

Formation C#, Découverte alphorm.com™©

C#

Les classes, les interfaces et génériques

Les classes

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Formation C#, Découverte 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#.

Page 51: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 51

Formation C#, Découverte alphorm.com™©

C# Les 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.

Formation C#, Découverte alphorm.com™©

C# Les objets

Classe(Plan)

Objet 1Concrétisation du Plan

Objet 2Concrétisation du Plan

• 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).

• Instanciation: Le fait de créer une instance (un objet) d'un type class. C'est donc le fait de créer unenouvelle 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.

Instanciation

Page 52: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 52

Formation C#, Découverte alphorm.com™©

C# Les 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 sontconnues au moment de la compilation et ne changent pas pendant la durée de vie du programme.

Formation C#, Découverte alphorm.com™©

C# Les accesseurs• L'accesseur d'une propriété contient les instructionsexécutables associées à l'obtention (lecture ou calcul) ou à ladéfinition (écriture) de la propriété.

• Les déclarations d'accesseurs peuvent contenir unaccesseur get, un accesseur set ou les deux.

Page 53: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 53

Formation C#, Découverte alphorm.com™©

C# Les constructeurs• À chaque fois qu'une classe est instanciée à l'aide del'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 lesdonnées membres du nouvel objet.

• Surcharger un constructeur : une classe peut avoirplusieurs constructeurs qui prennent des argumentsdifférents.

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Page 54: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 54

Formation C#, Découverte alphorm.com™©

C#

Les classes, les interfaces et génériques

Type valeur et type référence

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Formation C#, Découverte 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#.

Page 55: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 55

Formation C#, Découverte alphorm.com™©

C# Type valeur et type référence

• 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éscomme des objets)

• Rappel: En C#, les arguments peuvent être passés aux paramètres par valeur ou parré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.

• Une variable, au niveau physique, est un emplacement mémoire, repéré par uneadresse binaire.

• Au niveau abstrait, c’est une association entre un nom et une zone mémoire dont lataille et l’interprétation de son contenu dépendent du type de la variable.

Formation C#, Découverte alphorm.com™©

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 lesopérations sur une variable ne peuvent pas affecter l'autre.

254

long x

Objet o1

Int y

@1

‘m’

Sur la pile (stack) Sur le tas (heap)

« Alice »

@1

254

123

Objet o2

Char c

@3Objet o3

int a « Eric »

Page 56: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 56

Formation C#, Découverte alphorm.com™©

C# Class Vs Struct� Les structures (type valeur) conviennent mieux aux petites structures de données quine 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 pourmodeler un comportement plus complexe ou les données sont sensées être modifiéesaprès instanciation.

Formation C#, Découverte alphorm.com™©

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.

i

j

o

Sur la pile (stack) Sur le tas (heap)

Int123

123

@

123

Page 57: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 57

Formation C#, Découverte alphorm.com™©

C# Le mot clé static

rayon = 6pi = 3.14

c1

c2

pi = 3.14

rayon = 6

c1

c2

rayon = 4

rayon = xcn

rayon = 4pi = 3.14

Formation C#, Découverte alphorm.com™©

C# Le 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 lamémoire, et ses membres sont accessibles via le nom de classe.

Page 58: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 58

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Formation C#, Découverte alphorm.com™©

C#

Les interfaces

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Les classes, les interfaces et génériques

Page 59: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 59

Formation C#, Découverte alphorm.com™©

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 alphorm.com™©

C# Qu’est 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 .

Page 60: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 60

Formation C#, Découverte alphorm.com™©

C# Implémenter 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 quiimplémente l'interface.

• Les membres d'interface sont automatiquement publics, et ne peuvent pas inclure lesmodificateurs 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'estappelé qu'à travers l'interface

Formation C#, Découverte alphorm.com™©

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.

Page 61: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 61

Formation C#, Découverte alphorm.com™©

C# Implémenter 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.

Formation C#, Découverte alphorm.com™©

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).

Page 62: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 62

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Formation C#, Découverte alphorm.com™©

C#

Les collections génériques

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Les classes, les interfaces et génériques

Page 63: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 63

Formation C#, Découverte alphorm.com™©

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 alphorm.com™©

C# Les 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 >.

Page 64: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 64

Formation C#, Découverte alphorm.com™©

C# Les 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.

Formation C#, Découverte alphorm.com™©

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.

Page 65: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 65

Formation C#, Découverte alphorm.com™©

C# Les 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 lescollections génériques.

• Les collections génériques mettent en vigueur le typage fort en autorisant uniquementl'ajout du type de données souhaité.

• Les collections génériques permettent de reporter la spécification du type réel au momentde 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 alphorm.com™©

C# Ce 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#.

Page 66: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 66

Formation C#, Découverte alphorm.com™©

C#

Encapsulation, héritage et polymorphisme

Encapsulation

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Formation C#, Découverte alphorm.com™©

C# Plan• Le concept d’abstraction

• Le principe d’encapsulation

• Démonstration: Instancier une classe en C#.

Page 67: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 67

Formation C#, Découverte alphorm.com™©

C# Le 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.

• 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).

• 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.

� N.B: La POO est un paradigme basé sur la notion de l’objet et sa séparation de sa définition.

concret abstrait

l’homme l’humanité

le blanc la blancheur

L'existant L’existence

Classe(Plan)

Objet Concrétisation du Plan

Formation C#, Découverte alphorm.com™©

C# Le 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 membreslié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. Iln'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 uneinterface 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.

Page 68: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 68

Formation C#, Découverte alphorm.com™©

C# Ce qu’on a couvert• Le concept d’abstraction

• Le principe d’encapsulation

• Démonstration: Instancier une classe en C#.

Formation C#, Découverte alphorm.com™©

C#

Encapsulation, héritage et polymorphisme

Héritage etPolymorphisme

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Page 69: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 69

Formation C#, Découverte alphorm.com™©

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#.

Formation C#, Découverte alphorm.com™©

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.

• Pour accéder aux membres de la classe de base à partir d’une sous-classe on utilise le mot clé base.

classe de base

classe dérivée

(1)

classe dérivée

(2)

… (n)

Page 70: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 70

Formation C#, Découverte alphorm.com™©

C# Les modificateurs abstract et sealed• Le 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 membresabstraits.

� 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 deles substituer et toujours utilisé avec override.

Formation C#, Découverte alphorm.com™©

C# Qu’est 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 POOpolymorphisme. (overriding ang) un même code peut être appliqué à des données de typedifférents liées entre elles par une relation d’héritage .

Page 71: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 71

Formation C#, Découverte alphorm.com™©

C# Polymorphisme 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é, unindexeur 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 lesimplémentations de la classe de base avec le modificateur new.

Formation C#, Découverte alphorm.com™©

C# Ce 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#.

Page 72: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 72

Formation C#, Découverte alphorm.com™©

C#

Conclusion

Site : http://www.alphorm.comBlog : http://www.alphorm.com/blog

Chamseddine OUERHANIDéveloppeur et Formateur DOTNET

Découverte de C#

Formation C#, Découverte alphorm.com™©

C#

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

Ce qu’on a couvert

Page 73: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 73

Formation C#, Découverte alphorm.com™©

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 alphorm.com™©

C# Pratiquer Pratiquer Pratiquer

Page 74: Alphorm.com Support de la formation Programmer en C# avec visual studio 2015

Alphorm.com-Support de la formation Programmer en C# avec Visual Studio 2015

02/05/2016

TOUTE UTILISATION EN DEHORS DE ALPHORM EST INTERDITE 74

Formation C#, Découverte alphorm.com™©

C# Cursus C#• 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

Découverte C#

Notions Avancées

• 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

Accès aux données et interface graphique

• Amélioration de la performance des applications• Intégration avec le code non géré• Les assemblages et Les types réutilisables • Chiffrement et déchiffrement des données

C#, Notions Avancées

Prochaine formation

Formation C#, Découverte alphorm.com™©

C# Merci pour votre attention !