0% ont trouvé ce document utile (0 vote)
82 vues77 pages

DOTNET6CSHARP

Transféré par

yourianegomez241
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
82 vues77 pages

DOTNET6CSHARP

Transféré par

yourianegomez241
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

1

DOT NET
 
C SHARP
ENVIRONNEMENT .NET
2

 Caractéristiques de .NET
 Plateforme de développement de Microsoft
 Riche fonctionnalité prête à l'emploi.
 Le framework .NET fournit un riche ensemble de fonctionnalités
prêtes à l'emploi. Il contient des centaines de classes qui offrent une
variété de fonctionnalités prêtes à l'emploi dans vos applications.
 Développement facile d'applications Web
 [Link] est la [Link] pour développer des applications Web
dynamiques et axées sur les données. [Link] fournit un modèle de
programmation piloté par les qui simplifie le développement de pages Web
(maintenant appelées formulaires Web) avec une interface utilisateur
complexe. Les contrôles serveur [Link] fournissent des éléments d'interface
utilisateur avancés (comme le calendrier et les grilles) qui économisent
beaucoup de codage du côté du programmeur.
 Support du Paradigme OO
 Prise en charge de plusieurs langages
 Visual [Link], C#, [Link] et C++ (un dialecte de Visual
C++).
 Prise en charge de plusieurs appareils
 NET fournit une plate-forme pour la programmation mobile: Compact
ENVIRONNEMENT .NET
3

 Caractéristiques de .NET
ENVIRONNEMENT .NET
4

 Caractéristiques de .NET
 Riche fonctionnalité prête à l'emploi.
 Gestion automatique de la mémoire
 Le ramasse-miettes libère les objets inutilisés à des intervalles
appropriés.
 Compatibilité avec COM et COM+
 Prise en charge XML
 En plus de prendre en charge la manipulation et la transformation de XML, .NET
fournit des services Web XML basés sur des normes HTTP, XML et SOAP.
 Facilité de déploiement et de configuration
 La configuration se fait via des fichiers XML spéciaux qui de plus peuvent etre
transmis par FTP en ce qui concerne les applications web.
 Sécurité
 Des fonctionnalités telles que la sécurité de type, la sécurité d'accès au code et
l'authentification basée sur les rôles rendent l'application globale plus robuste
et sécurisée.
ENVIRONNEMENT .NET
5

 Application client-serveur
ENVIRONNEMENT .NET
6

 Application client-serveur

 services de présentation :
 Collecte d'informations auprès de l'utilisateur
 Envoi des informations de l'utilisateur aux services métier pour traitement
 Recevoir les résultats du traitement des services métier
 Présentation de ces résultats à l'utilisateur

 Services métier
 Réception d'entrées du niveau présentation.
 Interaction avec les services de données pour effectuer les opérations métier.
 Envoi des résultats traités au niveau présentation.

 Le niveau des services de données est responsable de :


 Stockage des données.
 Récupération de données.
 Maintenance des données.
 Intégrité des données.
ENVIRONNEMENT .NET
7

 Application client-serveur
 Le niveau présentation bénéficiera des nouvelles technologies
d'interface et notamment des formulaires Web pour les
développements Internet. Et des conceptions de niveau
intermédiaire plus riches et plus distribuées seront possibles en
utilisant les services Web.
ENVIRONNEMENT .NET
8

 Application client-serveur

 Une application distribuée à n niveaux a trois


niveaux physiques avec un ou plusieurs niveaux
logiques sur chaque machine
Architecture .NET
9
Architecture .NET
10

 Le Common Language Runtime (CLR)

 le CLR est le cœur du framework .NET. Les applications .NET sont


compilées dans un langage commun appelé Microsoft Intermediate
Language ou « IL ». Le CLR gère ensuite la compilation de l'IL en un
programme en langage machine, qui sera exécuté.

 L'environnement CLR est également appelé environnement géré, dans


lequel des services communs, tels que la gestion de la mémoire et la
sécurité, sont automatiquement fournis.

 La couche .NET Class Framework,


 également appelée bibliothèque de classes de base .NET, se compose
de plusieurs milliers de définitions de types, où chaque type expose
certaines fonctionnalités.
Architecture .NET
11

 le CLR et le .NET Class Framework permettent de créer les types


d’applications suivants:
 Services Web. Des composants accessibles très facilement via
Internet.
 Applications Web. Applications basées sur HTML (sites Web).
 Applications Windows. Applications riches de l'interface graphique
Windows. Les applications de formulaire Windows peuvent tirer parti
des commandes, des événements de la souris et du clavier et peuvent
communiquer directement avec le système d'exploitation sous-jacent.
 Applications consoles Windows. Les compilateurs, les utilitaires et les
outils sont généralement implémenté en tant qu'applications console.
 Services Windows. Il est possible de construire des applications de
service contrôlables via le Gestionnaire de contrôle des services
Windows (SCM) à l'aide du .NET Framework.
 Bibliothèque de composants. .NET Framework vous permet de créer des
composants autonomes (types) qui peuvent être facilement incorporés
dans l'un des éléments mentionnés ci-dessus
12
Le langage C#
13

 C# :
 Ce langage est orienté objet,
 avec un typage fort.
 Il est très proche du langage Java.
 Il est précompilé en MSIL (Microsoft Intermediate Language),
puis exécuté sur une machine virtuelle, ou compilé en code
natif à l'exécution. Il dispose d'un ramasse-miettes (garbage
collector). I
 l utilise l'API .NET en remplacement des MFC (Microsoft
foundation class).
Le langage C#
14

 Caractéristiques partagées
 Caractéristiques partagées avec le langage Java

 Syntaxe : les mots clés communs avec Java


 public, private, protected, abstract, class, interface, try, catch,
finally, throw, new, return, this, if, while, do, for, foreach,
enum... et le mot clé lock est l'équivalent C# du mot clé Java
synchronized;

 Garbage collector :
 les objets qui ne sont plus référencés sont traités par le
ramasse-miettes afin de libérer la mémoire qu'ils occupent ;

 Références : les objets sont en fait des références ;


Le langage C#
15

 Caractéristiques partagées
 Caractéristiques partagées avec le langage Java

 Documentation automatique :
 cette caractéristique commune syntaxe différente
 le langage Java utilise les commentaires spéciaux /** */ au
format HTML, avec des tags commençant par le caractère
arobase @ ;
 le langage C# utilise les commentaires /// au format XML ;

 Méthodes courantes :
 une majeure partie des méthodes de l'API de C# ressemblent à
celles de Java, excepté que leur nom commence par une
majuscule : Main, Equals, ToString, Length, IndexOf, ...
Le langage C#
16

 Caractéristiques partagées
 Caractéristiques partagées avec le langage C++

 surcharge des opérateurs ;


 structures (mot clé struct) ;
 énumérations (mot clé enum) ;
 pointeurs : il est possible, en mode unsafe, d'utiliser des
pointeurs au lieu de références.
Le langage C#
17

 Caractéristiques propres au C#

 propriétés : une propriété est un couple de méthodes (get et


set) appelées lorsque celle-ci est lue ou modifiée ;
 attributs : un attribut est lié à une déclaration et contient des
méta-données sur celle-ci (méthode obsolète, importée d'une
DLL, ...) ;
 delegate : un delegate est un modèle de méthode, qui lorsqu'il
est appelé, appelle toutes les méthodes qui lui ont été
associées. Pour faire un parallèle avec le C++, les delegates
peuvent être comparés à des pointeurs de fonction. Leur
sémantique est toutefois nettement plus riche qu'en C++.
Le langage C#
18

 Programmation C sharp/Compilation

 Un fichier source C# porte l'extension ".cs".


 La compilation produit un fichier ".exe".
 Une bibliothèque rassemble des classes et porte l'extension
".dll". Elle peut être utilisée par un programme ou une autre
bibliothèque.

 Un compilateur C# permet la traduction du code source en


instructions .Net.
 Ces instructions sont produites pour un processeur virtuel et ne
sont donc pas directement interprétées par le processeur, mais
interprétés par le moteur .Net.
 Sous Windows, le compilateur produit un exécutable appelant
l'interpréteur .Net.
 Sous Linux, le programme produit n'est pas directement exécutable
Le langage C#
19

 Programmation C/Compilation

 Compilation sous windows


 Si le framework Microsoft .NET est installé, le compilateur
nommé [Link] doit se situer dans C:\WINDOWS\[Link]\
Framework\vnuméro_version_du_framework.
 Il est également possible d'utiliser Visual Studio .NET pour
développer, compiler et déboguer les applications C#.

 Compilateur pour Linux


 Compilateur : gmcs
 Interpreteur : mono
Le langage C#
20

 Programmation C# /Compilation
Le langage C#
21

 Hello world en C#
using System;
public class HelloWorld
{
public static void Main()
{
[Link]("Hello world !");
[Link]();
}
}

 using System : Utilisation de l’espace de nom « System».


 public static void Main() : Méthode statique, point d’entrée du
programme
 public static void Main()
 [Link]("Hello world !"): Console appartient à l’espace de
nom « System».
22
Le langage C#
23

 Hello world avec bibliothèque


 « [Link] »
using System;
public class HelloWorld
{
public static void Afficher()
{
[Link]("Hello world !");
[Link]();
}
}
Le langage C#
24

 Hello world avec bibliothèque


 [Link]
public class PremierProg
{
public static void Main()
{
// appel à la méthode statique Afficher() de la classe HelloWorld
[Link]();
}
}
Le langage C#
25

 Hello world avec bibliothèque


 Compilez la bibliothèque
SE Compilation pour librairie
Windows csc /t:library [Link]
Linux gmcs -target:library [Link]

 Le compilateur a créé un fichier nommé [Link]


Le langage C#
26

 Hello world avec bibliothèque


 Compilez le programme
SE Compilation en exécutable
Windows csc /r:[Link] [Link]
Linux gmcs -r:[Link]
[Link]
 Le compilateur produit un fichier nommé [Link]

 Exécution
 Windows : [Link]
 Linux (Mono) : mono [Link]
Le langage C#
27

 Les commentaires
 Un bloc de commentaire est délimité par les signes slash-étoile
/* et étoile-slash */ comme en Java et en C++.
 Un commentaire de fin de ligne débute par un double slash //
et se termine au prochain retour à la ligne.

 Commentaire de documentation
 C’est une forme spéciale des commentaires pour documenter
les classes
 commencent par un triple slash /// et se terminent au prochain
retour à la ligne. Alternativement, ils peuvent être encadrés par
/** et */.
Le langage C#
28

 Commentaire de documentation
 C’est une forme spéciale des commentaires pour documenter
les classes
 commencent par un triple slash /// et se terminent au prochain
retour à la ligne. Alternativement, ils peuvent être encadrés par
/** et */.
 Le contenu de ces commentaires est au format XML.
/// <summary>
/// Une classe pour démontrer
/// les commentaires de documentation
/// </summary>
public class Exemple
{
...
}
Le langage C#
29

 Les espaces de noms


 Un espace de nom regroupe plusieurs déclarations sous un
même nom ajouté à ceux des éléments déclarés (classes,
interfaces, espace de nom imbriqué).
 Exemple
namespace MesClasses
{
public class ClasseA
{ ... }
public class ClasseB
{ ... }
}

 Utilisation :
 soit avec le nom absolu: [Link]
 Ou using namespace : using MesClasses
Le langage C#
30

 variables et les constantes


 Déclaration de variable
 type nom [ = expression ] ;
 Exemple: int quantite = 50, taille, max = 100 ;
 La portée d'une variable
 correspond au bloc d'accolades où elle est déclarée. Une variable
membre d'une classe est déclarée au niveau de la classe. Une
variable locale est déclarée à l'intérieur d'un bloc d'accolades (celui
de la méthode/propriété membre, ou un bloc interne à celle-ci).
Le langage C#
31

 variables et les constantes


 Variable en lecture seule
 Une variable peut être déclarée en lecture seule en utilisant le mot-
clé readonly.
 readonly double taux_tva = 19.6;

 Il n'est pas obligatoire d'initialiser une variable en lecture seule lors


de sa déclaration. Ce qui permet de déterminer la valeur en fonction
d'autres données
class Facture
{
public readonly double taux_tva;
public Facture(bool taux1)
{
if (taux1) taux_tva = 19.6;
else taux_tva = 5.5;
}
}
Le langage C#
32

 variables et les constantes


 Déclaration de constantes :
 mot clé const
 l'initialisation à la déclaration est obligatoire :
 const type nom = expression ;

 Ex: const double taux=18.6;

 Une constante est implicitement statique.


 Le mot const ne s'applique qu'aux types standards numériques,
booléens, string, et énumérations
Le langage C#
33

 Les types de Base

 Deux catégorie de types en C# :

 Les types valeurs


 stockent directement la valeur des données (un entier, une
chaîne de caractères, une structure)

 Les types références


 qui stockent une référence vers la valeur des données (un
tableau, un objet, une interface).
 Les variables de ce type valent initialement null; il faut
explicitement leur allouer de l'espace mémoire avec new.
Le langage C#
34

 Types de base
Le langage C#
35

 Types de base
 Syntaxe des chaînes de caractères: deux syntaxes
différentes
 Syntaxe avec caractères d'échappement : La chaîne est entourée
par les guillemets et l'anti-slash introduit un caractère spécial (\n, \
t ...) ou empêche son interprétation (guillemet \" et anti-slash \\)
 Syntaxe verbatim : La chaîne est précédée d'un caractère arobase,
et l'anti-slash n'est pas interprété. Si un guillemet doit faire partie de
la chaîne de caractère, il faut le doubler "".

 Exemples:
 "un guillemet \", un anti-slash \\, un retour à la ligne\n«
 @"C:\program files\monapp\[Link]"
Le langage C#
36

 Types de base
 Auto-boxing/unboxing
 Chaque type de données correspond à une classe de
l'espace de nom System. La conversion entre le type et une
instance de cette classe est implicite et invisible.
 string message = [Link](); // méthode définie dans la
classe System.Int32

 Types nullable
 la possibilité pour les types simples de valoir null. Cette
fonctionnalité permet une meilleure interopérabilité avec les
bases de données qui utilisent ce type de données.
 Pour qu'une variable puisse valoir null (nullable), il faut que
le type soit suivi d'un point d'interrogation : int? numero =
null;
Le langage C#
37

 Types de base
 Valeur par défaut
 L'opérateur default retourne la valeur par défaut du type spécifié. Il
s'agit de la valeur quand une variable de ce type n'est pas initialisée
(0 pour les nombres, null pour les types références).

public int absolu(int? valeur)


{
if (valeur==null) return default(int);
else return (valeur<0) ? -valeur : valeur;
}
Le langage C#
38

 Types de base
 Obtenir le type

 L'opérateur typeof retourne une instance de la classe


[Link] pour le type spécifié entre parenthèses.

 Exemple: Type t=typeof(int);


Le langage C#
39

 Types de base
 Les tableaux
 Déclaration d'un tableau
 Les crochets ajoutés à la fin d'un type indique qu'il s'agit
d'un tableau.
 Exemple : int[] liste;
 le premier élément porte l'index 0.
 Les tableaux font partie des types références. Il n'est donc
pas alloué par défaut (référence null). L'allocation se fait en
utilisant le mot clé new :
 new type[taille]
 Exemple : int[] liste= new int[10];
 L'allocation peut se faire après la déclaration
 Il est possible de définir directement les valeurs que le
tableau contient.
 int[] liste = new int[] { 10,15,20,25,30,35,40,45 };
Le langage C#
40

 Types de base
 Les tableaux
 Taille d'un tableau: L'attribut Length donne la taille du
tableau
 for(int i=0 ; i<[Link] ; i++) [Link](" ["+i+"] = " +
liste [i] );
 Parcours du tableau avec foreach
 foreach(int n in liste) [Link](" " + n );
 Tableaux multi-dimensionnels
 Un tableau multi-dimensionnel utilise la même syntaxe, en
séparant les indices par une virgule.
 int[,] image = new int[ 32, 16 ]; image[1,5] = 0;
 Un tableau de tableaux (appelé jagged array ou tableau
déchiqueté) utilise la syntaxe des tableaux uni-dimensionnels en
utilisant un tableau comme type
 int[][] ensembles = new int[10][];
 ensembles[0] = new int[11]; ensembles[1] = new int[] { 2,

3 };
Le langage C#
41

 Types de base
 Les Objets
 Un objet est un type référence. Il s'agit d'une instance de
classe.

 Le type object
 La classe [Link] est équivalente au type object. Il s'agit
de la classe de base de toutes les autres classes.
 L'auto-boxing/unboxing permet d'utiliser le type object pour
n'importe quel type de valeur :
 object obj;
 obj = 10; // int -> Int32 -> object
 obj = "Une chaîne"; // string -> String -> object
Le langage C#
42

 Types de base
 Les Objets
 Création d’un nouvel objet
 L’instanciation d’une classe utilise l'opérateur new :
 classe variable=new classe(arguments...);
Le langage C#
43

 Types de base
 Les Classes
 Déclaration d’une nouvelle classe
 class nom_de_la_classe
 {
 }
 Membres d'une classe
 Les membres d'une classe sont de différents types :
 méthodes traitent les données
 Les variables, appelées attributs, stockent les données ;
 Les propriétés sont des méthodes spéciales utilisées comme des
variables.
Le langage C#
44

 Types de base
 Les Classes
 Membres statiques de classe et membres
d'instance
 Un membre statique de classe est un membre déclaré avec le
mot clé static. Il est définit une seule fois en mémoire, et il n'est
pas nécessaire de créer un nouvel objet pour qu'il soit créé et
utilisable.
public class UnExemple
{
int numero; // Défini pour chaque objet
static int numero_suivant; /
}
Le langage C#
45

 Les Classes
 Classe statique
 Une classe statique ne contient que des membres statiques, et ne
peut être instanciée. Le mot clé static précède la déclaration de
cette classe.
public static class UneClasseStatique
{
public static void Afficher(string message)
{
// ...
}
}
Le langage C#
46

 Les Classes
 Référence null
 Toute variable de type objet est une référence initialisée à null par
défaut. Cette référence peut être utilisée quel que soit le type
d'objet.
 Il est souvent nécessaire de tester si la référence est nulle avant
d'accéder à un membre de l'objet référencé. Si le test n'est pas fait
et que la référence est nulle, une exception est levée.
Le langage C#
47

 Les Classes
 Niveaux de protection
 Le niveau de protection est spécifié par un mot clé placé
avant la déclaration d'une classe ou d'un membre de classe
(attribut, méthode, propriété, ...) :
 public : Accès autorisé à tous ;
 private : Accès depuis la classe seulement ;
 protected : Accès depuis la classe et ses sous-classes seulement
;
public class
 internal Fraction
:Accès depuis l'assembly seulement.
{
private int
numerateur,
denominateur;
public void multiplier(Fraction autre)
{}
}
Le langage C#
48

 Les Classes
 Niveaux de protection
 Constructeur
 méthode spéciale portant le nom de la classe, ne retournant aucune
valeur, chargée d'initialiser l'instance.

public class Fraction


{
private int
numerateur,
denominateur;
public Fraction(int numerateur, int denominateur)
{[Link] = numerateur;
[Link] = denominateur;
}
}
Le langage C#
49

 Les Classes
 Niveaux de protection
 Constructeur
 Constructeur par défaut
 Le constructeur par défaut est celui qui n'a aucun
paramètre. Si aucun constructeur n'est déclaré dans une
classe, le compilateur crée un constructeur par défaut qui
ne fait rien, laissant les attributs à leur valeur par défaut
(dépendant du type : 0 pour les numériques, null pour tous
les autres).
Le langage C#
50

 Les fonctions
 Déclaration d’une méthode

[accès] type_retour nom_méthode ( type argument, ... )


{
instructions
}

 Passage de paramètres à une méthode


 trois manière différentes :
 un paramètre en lecture seule (transmission d'information) : passage
par valeur,
 un paramètre référençant une variable pour y mettre une valeur de
retour : paramètre out,
 un paramètre référençant une variable pour transmettre une
information et y mettre une valeur de retour : paramètre ref.
Le langage C#
51

 Les fonctions
 Passage de paramètres à une méthode
 Passage par valeur : aucun mot clé
 paramètre out : mot clé out. private void methodeTest(out int
resultat)
 Paramètre ref : mot clé ref private
 Ce paramètre est précédé du mot-clé ref à la fois lors de sa
déclaration, et lors de l'appel à la méthode.
 void methodeTest(ref int resultat)
 Surcharge de méthode
 Une méthode peut être surchargée (overload en anglais), c'est à dire
qu'il peut exister au sein de la même classe plusieurs méthodes
portant le même nom, à condition qu'elles soient différenciables par
leur signature.
Le langage C#
52

 Propriétés
 Une propriété est une valeur qui peut être lue ou modifiée,
comme une variable. Ces deux opérations sont en fait réalisées
par les accesseurs get et set. Si l'un de ces deux accesseurs
est manquant, la propriété sera alors soit en lecture seule, soit
en écriture seule.
Syntaxe
Type Nom_de_la_propriété
{
get // propriété lue
{
code retournant une valeur du Type spécifié
}
set // propriété modifiée
{
code utilisant le paramètre prédéfini "value"
}
}
Le langage C#
53

 Propriétés et indexeurs
 Les propriétés
private string _message;
public string Message
{
get
{
return _message;
}
set
{
_message = value;
}
}
Le langage C#
54

 Propriétés

Utilisation :

Message = "Test de la propriété" ; // <- accesseur set


[Link]( Message ); // <- accesseur get
Message += " et message ajouté"; // <- accesseurs get et set
Le langage C#
55

 Les opérateurs
 Similaire à Java
 Les opérateurs arithmétiques, booléens, de comparaison, de
bits

 Test de type : opérateur is


 expression is type
 Nombre nombre = new Entier(150);

 if (nombre is Entier)

 Les opérateurs de conversion :


 Les parenthèses permettent de convertir tout type en un autre.
 int longueur = (int)( 10.2 * 3.1415 );
Le langage C#
56

 Les opérateurs
 L'opérateur as
 Contrairement à l'opérateur précédent, l'opérateur as ne
fonctionne que sur les références d'objets.
 object o = "Chaîne de caractère dérive de la classe object" as
object;
Le langage C#
57

 Surcharges des opérateurs


 Une classe peut surchargé un opérateur C# prédéfini en fournissant
une implémentation personnalisé d’une opération si l’un des
opérandes ou tous les deux sont des instances de la classe.
 Mot-clé : operator
 Régles à respecter:
 Modificateurs public et static
 Un operateur unaire possède un paramètre d’entrée, un operateur
binaire en possède 2.
 Dans chaque cas, au moins un paramètre doit être instance de la
classe

 Exemple
 Public static Fraction operator – (Fraction a) => new Fraction(-[Link], [Link]);
 Public static Fraction operator – (Fraction a, Faction b) => a+ (-b);
Le langage C#
58

 Les structures de contrôle


 Similaire à java
Le langage C#
59

 Héritage de classes
 La relation d'héritage est définie à la déclaration de la classe
par le symbole deux-points suivi du nom de la super-classe.
 public class Automobile : Vehicule {}

 Constructeurs
 Le constructeur de la sous-classe appelle toujours celui de la classe
de base, implicitement ou explicitement. Si rien n'est spécifié, le
compilateur génère un appel implicite au constructeur de la classe
de base ne comportant aucun paramètre. C'est pourquoi ce
constructeur est nommé « constructeur par défaut ».
 Si la classe de base ne possède aucun constructeur par défaut, ou si
un autre serait plus approprié, il est possible de spécifier
explicitement le constructeur à appeler. Le mot-clé base désigne la
classe de base.
Le langage C#
60

 Héritage de classes

public class Automobile : Vehicule


{
public class Vehicule string couleur;
{ public Automobile(string couleur)
int roues, places, kilometrage; : base( 4, 5 ) {
// Constructeur "protégé" : l'accès est limité [Link] = couleur;
// à cette classe et aux sous-classes }
protected Vehicule(int roues,int places) public Automobile()
{ : this( "indéfinie" )
[Link] = roues; {
[Link] = places; }
} }
}
Le langage C#
61

 Héritage de classes

 Surcharge/redéfinition sans polymorphisme

 La redéfinition d'une méthode consiste à créer une méthode dans


une sous-classe ayant le même nom et les mêmes types
d'arguments (la même signature) qu'une méthode de la classe de
base, afin de modifier son comportement.
Le langage C#
62

 Héritage de classes
 Surcharge avec polymorphisme
Le polymorphisme permet d'utiliser le type réel de l'objet référencé

plutôt que le type de la référence pour déterminer la méthode, la
propriété ou l'indexeur à utiliser. Pour cela, il faut utiliser le mot clé
virtual dans la déclaration de la méthode de la classe de base. Et il
faut Vehicule
public class utiliser le mot clé override dans la classe dérivée :
{ public class Automobile : Vehicule
private int poids; {
public Vehicule(int poids) private string couleur;
{ [Link] = poids; } public Automobile(int poids,string couleur)
public virtual string : base(poids)
Description() { [Link] = couleur; }
{ // méthode surchargée
public override string Description() { }
}
Le langage C#
63

 Classe abstraite
 Syntaxe
 Le mot clé abstract doit précéder la classe abstraite et toutes les
méthodes abstraites.
 public abstract class Vehicule
 {
 }

 Implémenter les méthodes abstraites


 La classe implémentant les méthodes abstraites de la classe de base
doit utiliser le mot clé override, car les méthodes abstraites sont
implicitement virtuelles également
 public override bool Contient(object o)
64
Le langage C#
65

 Interface
 Sert à définir un contrat (ensemble de fonctions) que la classe
doit fournir. Une interface déclare des méthodes et des
propriétés. C’est la classe qui fournit l'implémentation de ces
méthodes.
public interface I {
public m1(…);
public m(…);
….
}

public class C : I {
public m1(…) {……..}
public m(…) {……….}
….
}
66
Le langage C#
67

 Les Collections

 SDD permettant de stocker plusieurs données ou objets;


 Plus flexibles que les tableaux : dynamiques;

 Principales collections :
 ArrayList;
 Stack (Pile , LIFO)
 Queue (File, FIFO)
 Hashtable
Le langage C#
68

 Les Collections

 ArrayList
 Declaration : ArrayList lst = new ArrayList()
 Méthodes :
 add : [Link](e) , ajout d’un élement e;
 Count : [Link](), retourne le nombre d’éléments
 Countains: [Link](e), teste la présence d’un élément
 RemoveAt : [Link](index), supprime l’élément à la
position index
Le langage C#
69

 Les Collections

 Stack
 Declaration : Stack pile = new Stack()
 Méthodes :
 push : pile. push(e) , empiler un élément e;
 pop : [Link](), supprime l'élément au sommet; retourne
l’élément;
 Count : [Link](), retourne le nombre d’éléments
 Countains: [Link](e), teste la présence d’un élément

 foreach (Object obj in pile) { …obj…}


Le langage C#
70

 Les Collections

 Queue
 Declaration : Queue file = new Queue()
 Méthodes :
 enqueue : file. enqueue(e) , ajoute un élément e;
 pop : [Link](), supprime l'élément le plus ancien; retourne cet
élément;
 Count : [Link](), retourne le nombre d’éléments
 Countains: [Link](e), teste la présence d’un élément
Le langage C#
71

 Les Collections

 Hashtable
 Contient une liste de paires (clé, valeur)
 Déclaration : Hashtable ht = new Hashtable()
 Méthodes :
 Add : [Link](clé, val) , ajout d’une paire;
 CountainsKey : [Link](clé), est-ce que la clé est
présente?
 CountainsKey : [Link](val), est-ce que la valeur est
présente?

 Icollection lescles = [Link]() // lescles reçoit la liste des clés


 foreach (TypeCle c in lescles) { …ht[c]…}
72
73

 Commentaires
 // sur une ligne
 /* sur plusieurs ligne */

 BOUCLE
 while (c)
 Do … while(c);
 for ( ex; ex; ex)
 Foreach (char let in nom)
74

 Commandes DOTNET
 dotnet – version
 dotnet new console –o FirstAp [-lang VB]
 dotnet – build
 dotnet – run
 dotnet –publish crée code à distribuer
rep publish
75

 Commandes AFFICHAGE
 using System (espace de nom)
 [Link](string)
 [Link](string) pas de retour a la ligne
 [Link]()
 [Link]()

 [Link] = "Titre de la console"


76

 Lire des données


 using System (espace de nom)
 int c = [Link]() code ascii caractère lit un entier
 string text = [Link]()
 string text = [Link]()
 ConsoleKeyInfo cki = [Link]() (é attributs [Link] et
[Link]

 [Link] = "Titre de la console"


77

Vous aimerez peut-être aussi