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