Академический Документы
Профессиональный Документы
Культура Документы
Abdallah MOUJAHID
PMP, COBIT V5 , ITIL V3, ISO 27002
Plan
Elments de base
Structures de contrle
Classes & objets
Hritage, polymorphisme & interfaces
Exceptions
Autres lments de C#
Introduction C#
Elments de base
Introduction
Langage de programmation cre par Anders Heljberg (Microsoft)
en 2001
Langage orient objet, inspir de C++ et Java
Permet dutiliser le framework .NET de manire optimale
Dernire version: 4.6 (Framework) & 6.0 (Langage 07/2015)
Classement TIOB des langages les plus utiliss au monde: 4me en
Septembre 2015 derrire Java, C et C++.
Elments de base
Dclaration & Assignation
Dclaration dune variable
int a;
int b = 5;
double c = a + b;
Commentaire
// Commentaire sur une ligne
/*
* Commentaires sur plusieurs lignes
*/
Elments de base
Exemples de types existants
C#
C / C++
int
int
long
long
char
char
string
String
bool
bool
double
double
float
float
decimal
float
Elments de base
Oprateurs
Arithmtiques
a + b
Addition
a b
Soustraction
a / b
Division
a % b
Modulo
a += b
a -= b
Comparaison
a == b
Egal
a != b
Diffrent
a > b
Suprieur
a >= b
Suprieur ou gal
a < b
Infrieur
a <= b
Infrieur ou gal
Elments de base
La mthode Main() (1/2)
Chaque assemblage excutable a au moins une
mthode statique Main() dans une de ses classes.
Cette mthode reprsente le point dentre du
programme, cest--dire que le thread principal cr
automatiquement lorsque le processus se lance va
commencer par excuter le code de cette mthode.
Elments de base
La mthode Main() (2/2)
Le programme suivant ajoute les nombres passs en
arguments en ligne de commande, et affiche le rsultat.
Sil ny a pas dargument, le programme le signale :
using System;
class Prog
{
static void Main(string[] args)
{
if (args.Length == 0)
Console.WriteLine("Entrez des nombres ajouter.");
else
{
long result = 0;
foreach( string s in args )
result += System.Int64.Parse(s);
Console.WriteLine("Somme de ces nombres
:{0}",result);
}
Introduction C#
9
}}
Elments de base
Les espaces de noms
Une ressource dans le code source a la possibilit dtre
dclare et dfinie lintrieur dun espace de noms.
Si une ressource nest dclare dans aucun espace de noms
elle fait partie dun espace de noms global et anonyme.
using Foo1;
using Foo1.Foo2;
using System;
namespace Foo1
{
// ici les ressources de l'espace de noms
Foo1
namespace Foo2
{
// ici les ressources de l'espace de noms
Foo1.Foo2
}
// ici les ressources de l'espace de noms
Foo1
}
10
Elments de base
Organisation du code source
Projet
Namespace 1
Namespace 2
Fichier1.cs
Ressource D
Fichier2.cs
Ressource C
Ressource A
FichierN.cs
Namespace M
Ressource B
11
Elments de base
Hello World !!!
Plan
Elments de base
Structures de contrle
Classes & objets
Hritage, polymorphisme & interfaces
Exceptions
Autres lments de C#
Introduction C#
13
Structures de contrle
Dfinition
Une structure de contrle est un lment du programme
qui change le comportement par dfaut de lunit
dexcution (du thread). Rappelons que ce
comportement par dfaut est dexcuter les instructions
les unes la suite des autres.
Trois familles de structures de contrles:
Introduction C#
14
Structures de contrle
Les conditions
Trois types de condition: if/else, switch, loprateur
ternaire ?:
if( b == true )
// si b vaut true alors...
if( i >= 4 && i<= 6)
// si i dans l'intervalle ferm [4,6]
alors...
if( i < 4 || i > 6)
// si i hors de l'intervalle ferm
[4,6] alors...
...
// s="bonjour" si i strictement infrieur j, sinon s="hello"
string s = i<j ? "bonjour" : "hello";
...
switch(i)
{
case 1:
Console.WriteLine("i vaut 1");
break;
case 6:
Console.WriteLine("i vaut 6");
break;
default:Console.WriteLine("i ne vaut ni 1 ni 6");
break;
Introduction C#
}
15
Structures de contrle
Les boucles
Quatre types de boucle: while, do/while, for, foreach
int i=0;int j=8;
while( i < 6 && j > 9 )
{
i++;j--;
}
Introduction C#
16
Structures de contrle
Instructions conditionnelles
if / then / else
Permet dexcuter une instruction si une condition est vraie
if (a == 5)
Console.Write("a == 5");
else if (a == 10)
Console.Write("a == 10");
else
Console.Write("a != 5 && a != 10");
Structures de contrle
Instructions conditionnelles
if / then / else
Une instruction peut tre remplace par un bloc
if (a == 5 || a == 10)
{
Console.Write("a == 5...");
Console.Write(ou a == 10");
}
Structures de contrle
Instructions conditionnelles
Oprateur ternaire
Exemple :
a = (b > 0 ? 1 : 2);
Equivalent :
if (b > 0)
a = 1;
else
a = 2;
Structures de contrle
Instructions conditionnelles
switch
Excute des instructions en fonction de la valeur dune variable
switch(a)
{
case 1:
Console.Write("a == 1");
break;
case 2:
Console.Write("a == 2");
break;
default:
Console.Write("a != 1 && a != 2");
break;
}
Structures de contrle
Instructions itratives
Permettent dexcuter une instruction plusieurs fois
for
foreach
while
do / while
Structures de contrle
Instructions itratives
Boucle for
Exemple :
// Affiche les nombres de 1 10
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
Structures de contrle
Instructions itratives
Boucle foreach
Permet ditrer dans un ensemble de donnes
Exemple :
// Affiche les nombres de 1 10
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
foreach (int i in array)
{
Console.WriteLine(i);
}
Structures de contrle
Instructions itratives
Boucle while
Exemple :
// Affiche les nombres de 1 10
int a = 1;
while (a <= 10)
{
Console.WriteLine(i);
i++;
}
Structures de contrle
Instructions itratives
Boucle do / while
Exemple :
// Affiche les nombres de 1 10
int i = 1;
do
{
Console.WriteLine(i);
i++;
} while (i <= 10);
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace SayMyName
{
// Une classe : on verra plus tard ce que c'est
class Program
{
// Une mthode (une fonctionnalit)
static void Main(string[] args)
{
Ex:
- Afficher du texte lcran suivi dun retour chariot :
Writeline
- Lire un texte tap au clavier ReadLine
Console.ReadKey();
// Les paramtres
Console.WriteLine("Who are you ?");
Console.ReadLine();
Quizz
Parmi les propositions ci-dessous, laquelle permet la lecture et
lcriture partir de la console?
a. System.Array
b. System.Output
c. System.ReadLine
d. System.Console
Quizz
La CLR est lquivalent de _________.
1. a. Java Virtual Machine
2. b. Common Language Runtime
3. c. Common Type System
4. d. Common Language Specification
Quizz
. Permet de traduire le code MSIL en code natif
a. JIT
b. CLS
c. IL
d. CTS
Quizz
Lequel des lments suivants est une autre faon de rcrire l'extrait de code
donn ci-dessous?
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Who are you ?");
string name = Console.ReadLine();
Console.WriteLine("Nice to meet you " + name);
Console.WriteLine("Entrez votre anne de naissance:");
string annee = Console.ReadLine();
int anneeInt = int.Parse(annee);
int age = DateTime.Now.Year - anneeInt;
Console.WriteLine("You are " + age);
if (age < 40)
{
// A vous : petit message pour les plus
Console.WriteLine("You are young, lucky
}
else
{
// A vous : petit message pour les plus
Console.WriteLine("You are experienced,
}
Console.ReadKey();
}
}
}
using System;
namespace Carre
{
class MainClass
{
public static void Main (string[] args)
{
Console.Write ("Saisir n : ");
int n = int.Parse(Console.ReadLine());
for (int i = 1 ; i <= n ; i++)
{
for (int j = 1 ; j <= n ; j++)
Console.Write("X ");
Console.WriteLine();
}
}
}
}
52
Plan
Elments de base
Structures de contrle
Tableaux
Classes & objets
Hritage, polymorphisme & interfaces
Exceptions
Autres lments de C#
Introduction C#
53
Les tableaux
Suite dlments du mme type
Accessibles par un index
index 3
index 0
Type rfrence
Les tableaux
Tableaux 1 dimension
Dclaration :
// Cre un tableau de 10 entiers
int[] array = new int[10];
Utilisation :
for (int i = 0; i < array.Length; i++)
{
array[i] = i * i;
}
// Affiche 25
Console.Write(array[5]);
Les tableaux
Tableaux 2 dimensions
Dclaration :
// Cre un tableau de 10x10 entiers
int[,] array = new int[10,10];
Utilisation :
for (int i = 0; i < array.GetLength(0); i++)
for (int j = 0; j < array.GetLength(1); j++)
{
array[i, j] = i * j;
}
Les tableaux
Les types de tableaux sont tous des types rfrence. En
fait chaque type de tableau est une classe qui hrite de
la classe abstraite System.Array.
C# oblige tous les lments dun tableau avoir le
mme type. Cette contrainte peut tre facilement
contourne. Il suffit de spcifier que les lments sont
des rfrences vers une classe de base, pour quen fait,
chaque lment puisse tre une rfrence vers un objet
de nimporte quelle classe drive.
57