Professional Documents
Culture Documents
El Kadali
I.
II.
Page 1 sur 45
1. Les types................................................................................................................................... 3
2. Porte dune variable................................................................................................................ 3
a. Les variables globales............................................................................................................ 3
b. Variables globales un formulaire......................................................................................... 4
c. Variables globales au projet................................................................................................... 4
III. Instruction alternative............................................................................................................ 4
3. Syntaxe :................................................................................................................................... 4
4. Imbrication dinstructions alternatives...................................................................................... 5
IV. Structure rptitive................................................................................................................ 6
1. Nombre de rptitions connu.................................................................................................... 6
d. Structure for........................................................................................................................... 6
e. Structure foreach.................................................................................................................... 6
2. Nombre de rptitions inconnu................................................................................................. 7
a. Structure tant que (while)...................................................................................................... 7
b. Structure repeter jusqu'a (do while)....................................................................................... 7
V. Structure de cas..................................................................................................................... 8
VI. Les tableaux........................................................................................................................... 9
1. Tableau unidimensionnel........................................................................................................... 9
2. Tableau multidimensionnel...................................................................................................... 10
3. Tableau de tableaux................................................................................................................ 10
VII. Les formulaires..................................................................................................................... 10
1. Oprations courantes.............................................................................................................. 10
2. Les applications MDI et SDI..................................................................................................... 11
3. Contrles et composants de bote de dialogue........................................................................11
a.
b.
c.
d.
e.
f.
La proprit DialogueResult................................................................................................. 11
OpenFileDialog..................................................................................................................... 12
SaveFileDialog...................................................................................................................... 13
ColorDialog........................................................................................................................... 13
FontDialog............................................................................................................................ 13
PrintDialog............................................................................................................................ 13
M.El Kadali
Page 2 sur 45
VIII.Boite outils......................................................................................................................... 14
1. form......................................................................................................................................... 14
2. ListBox..................................................................................................................................... 14
3. Checkbox................................................................................................................................. 14
4. Radiobutton............................................................................................................................. 14
5. ComboBox............................................................................................................................... 15
6. ListView................................................................................................................................... 15
7. PictureBox............................................................................................................................... 16
8. dataGridView........................................................................................................................... 16
9. TreeView.................................................................................................................................. 17
10........................................................................................................................................... Timer
................................................................................................................................................ 17
11................................................................................................................................. ProgressBar
................................................................................................................................................ 17
12................................................................................................................................... StatusStrip
................................................................................................................................................ 17
13.................................................................................................................................... PictureBox
................................................................................................................................................ 17
14............................................................................................................................ dateTimePicker
................................................................................................................................................ 17
15............................................................................................................................ Les conteneurs
................................................................................................................................................ 18
g.
h.
i.
j.
FlowLayoutPanel................................................................................................................... 18
groupBox.............................................................................................................................. 18
Panel.................................................................................................................................... 18
splitContainer....................................................................................................................... 18
Dfinition................................................................................................................................. 20
Evnements courants:............................................................................................................. 20
Associer une fonction un vnement................................................................................... 20
Tp............................................................................................................................................ 21
M.El Kadali
Page 3 sur 45
Mettre en uvre des actions sur les vnements les plus courants : Slection, Click, Evnements de
clavier, copier (couper) dposer
Utilisation des contrles avancs (date, calendrier) et contrles de mise en forme de texte (RTF)
Utilisation des botes de dialogue : ouverture de fichier, sauvegarde, impression, aperu, couleur et type
de policeparcours de dossiers
M.El Kadali
II.
Page 4 sur 45
Les dclarations
1. Les types
Les valeurs sont stockes dans des variables. Avant dutiliser une variable il faut la dclarer.
Chaque variable a un type.
int b;
Dclarer deux variables a et b entire :
int a;
int b = 5;
Ou :
int a,b;
b = 5 ;
Dclarer une variable de type char :
char c = 'r';
Page 5 sur 45
M.El Kadali
{
int i = 5;
MessageBox.Show(i.ToString()); // affiche 5
}
MessageBox.Show(i.ToString());
// erreur
Erreur : dans la dernire ligne, lutilisation de la variable i est fausse car la variable i ne peut
tre utilise quentre les accolades {}.
Exemple 2 : correct
{
int i = 5;
MessageBox.Show(i.ToString()); // affiche 5
}
{
int i = 3;
MessageBox.Show(i.ToString()); // affiche 5
}
M.El Kadali
Page 6 sur 45
{
public static String[,] stag = new String[100, 5];
public static int indice = 0;
}
GlobalVar.indice = 5;
III.
Instruction alternative
3. Syntaxe :
if (condition)
{
instruction;
instruction;
instruction;
}
else
{
instruction;
instruction;
le bloc else nest pas obligatoire
instruction;
}
S'il n'y a qu'une instruction, les { } ne sont pas obligatoires.
Les parenthses autour de la condition sont obligatoires.
int a;
a = 1;
if (a == 1)
{
a = 3;
}
else
{
a = 5;
}
int a;
a = 1;
if (a == 1)
a = 3;
else
a = 5;
M.El Kadali
Exemple 2 :quelle la valeur de la variable a la fin de ce programme ?
int a;
a = 1;
if (a == 1)
{
a = 3;
}
IV.
Structure rptitive
d. Structure for
Soit la structure algorithmique pour :
pour i allant de a b avec un pas de p faire
instruction;
instruction;
finpour
La syntaxe de cette structure en C# :
Page 7 sur 45
M.El Kadali
Page 8 sur 45
les 3 arguments du for sont l'intrieur d'une parenthse et spars par des
points-virgules.
chaque action du for est termine par un point-virgule.
l'accolade n'est ncessaire que s'il y a plus d'une action.
l'accolade n'est pas suivie de point-virgule.
Exemple :
int i;
for (i=0 ; i<=5 ; i=i+1){
MessageBox.Show("Bonjour :" + i);
}
e. Structure foreach
La syntaxe est la suivante :
foreach (Type variable in collection)
{
instructions;
.
.
.
}
Notes
Afficherait :
paul
hlne
jacques
sylvie
Page 9 sur 45
M.El Kadali
int a =9 ;
while(a > 10){
MessageBox.Show("Bonjour
a = a -1 ;//a=9
" );
MessageBox.Show("Bonjour
a = a -1 ;// a =8
} while(a>10)
" );
Page 10 sur 45
M.El Kadali
V.
Structure de cas
la valeur de l'expression de contrle du switch peut tre un entier, un caractre, une chane de
caractres
l'expression de contrle est entoure de parenthses.
la clause default peut tre absente.
les valeurs vi sont des valeurs possibles de l'expression. Si l'expression a pour valeur vi , les actions
derrire la clause case vi sont excutes.
l'instruction break fait sortir de la structure de cas.
chaque bloc d'instructions li une valeur vi doit se terminer par une instruction de branchement
(break, goto, return, ...) sinon le compilateur signale une erreur.
Exemple :
int choix = 2;
string ch = "0";
bool erreur = false;
switch (choix) {
case 1:
ch = "1";
break;
case 2:
ch = "2";
break;
case 3:
ch = "3";
break;
default:
erreur = true;
break;
}
=>
M.El Kadali
VI.
Page 11 sur 45
Les tableaux
1 Tableau unidimensionnel
Les tableaux C# sont indexs partir de zro ; autrement dit, leur premier lment porte l'index zro. En C#,
les tableaux fonctionnent de la mme faon que dans la plupart des autres langages courants. Il existe
cependant quelques diffrences dont vous devez tenir compte.
Lorsque vous dclarez un tableau, les crochets ([]) doivent suivre le type, et non l'identificateur. La prsence
de crochets aprs l'identificateur ne correspond pas une syntaxe conforme en C#.
int[] table; // non int table[];
Exemple 1 :
Exemple 2 :
Exemple3 :
char[] chr;
chr = new char[5];
chr[0] = 'a';
chr[1] = 'b';
string[] table = new string[5];
table[0] = "une phrase";
table[1] = "une autre phrase";
Exemple 4 :
M.El Kadali
Page 12 sur 45
6. Tableau multidimensionnel
string[,] names = new string[5,4];
int[,] nb ;
nb = new int[5,7] ;
7. Tableau de tableaux
int[][] ta = new int[3][];
ta [0] = new int[5];
ta [1] = new int[4];
ta [2] = new int[2];
ta[0][1] = 77;
VII.
Les formulaires
1 Oprations courantes
Afficher un formulaire form2 partir dun autre formulaire form1 (non modal : on accde
quand mme lautre) :
M.El Kadali
Page 13 sur 45
frm.ShowDialog();
Fermer une fentre :
frm.Close() ;
Cacher une fentre :
Frm.Hide() ;
Dans form2 on rajoute la fonction :
Page 14 sur 45
M.El Kadali
Rsultat :
2 Contrles et
bote de
composants de
dialogue
a La proprit DialogueResult
Vous pouvez produire vous propre boite de dialogue.Utilser poir cela La proprit
DialogueResult des boutons.
M.El Kadali
Page 15 sur 45
g. OpenFileDialog
L'utilisation de ce composant dans votre application Windows plutt que de configurer votre
propre bote de dialogue vous offre un moyen simple de slectionner des fichiers.
Exemple :
M.El Kadali
Page 16 sur 45
h. SaveFileDialog
Ce contrle affiche une boite de dialogue qui demande lutilisateur de slectionner un
emplacement pour lenregistrement dun fichier.
M.El Kadali
Page 17 sur 45
Exemple :
M.El Kadali
i. ColorDialog
ColorDialog clr = new ColorDialog();
if (clr.ShowDialog() == DialogResult.OK)
{
textBox1.BackColor = clr.Color;
}
j. FontDialog
FontDialog police = new FontDialog();
if (police.ShowDialog() == DialogResult.OK)
{
textBox1.Font = police.Font;
}
k. PrintDialog
VIII.
Boite outils
1 form
Page 18 sur 45
M.El Kadali
Page 19 sur 45
2 ListBox
Proprit SelectionMode :
//vider le listbox
listBox1.Items.Clear();
//ajouter un nouvel element au mistbox
listBox1.Items.Add("nouveau element");
//obtenir l index slectinn
int index = listBox1.SelectedIndex;
//ajouter l'lment selectionn
listBox2.Items.Add(listBox1.Items[index]);
//supprimer un lment
listBox1.Items.RemoveAt(index);
//nombre dlements selectionns du listbox
Int nb = ListBox1.SelectedIndices.Count ;
//nombre dlements du listebox
Int nb = ListBox1.Items.Count ;
//Obtenir llements dindexe 5
String s = listBox1.Items[5].ToString();
9. Checkbox
if (checkBox1.Checked)
MessageBox.Show("vert");
else
MessageBox.Show("blanc");
10.
Radiobutton
Des boutons radio prsents dans un mme conteneur, ici le GroupBox, sont exclusifs l'un de l'autre :
seul l'un d'entre eux est coch.
M.El Kadali
Page 20 sur 45
if ( radioButton1.Checked )
MessageBox.Show("radio1");
else
MessageBox.Show("radio2");
11.
ComboBox
Un composant ComboBox est une liste droulante double d'une zone de saisie : l'utilisateur
peut soit choisir un lment dans (2) soit taper du texte dans (1). Il existe trois sortes de
ComboBox fixes par la proprit DropDownStyle :
Simple liste non droulante avec zone d'dition
DropDown liste droulante avec zone d'dition
DropDownList liste droulante sans zone d'dition
Soit C un combo et C.Items sa liste d'lments. On a les proprits suivantes :
C.Items.Count
//nombre d'lments du combo
C.Items[i]
//lment i du combo
C.Add(object o)
//ajoute l'objet o en dernier lment du combo
C.AddRange(object[] objets) // ajoute un tableau d'objets en fin de combo
C.Insert(int i, object o) //ajoute l'objet o en position i du combo
C.RemoveAt(int i)
//enlve l'lment i du combo
C.Remove(object o)
//enlve l'objet o du combo
C.Clear()
//supprime tous les lments du combo
C.IndexOf(object o)
//rend la position i de l'objet o dans le combo
C.SelectedIndex
//index de l'lment slectionn
C.SelectedItem
//lment slectionn
C.SelectedItem.Tostring()
//texte affich de l'lment slectionn
C.Text
//texte affich de l'lment slectionn
M.El Kadali
12.
Page 21 sur 45
ListView
Proprits importante :
Evnements important :
M.El Kadali
13.
Page 22 sur 45
PictureBox
14.
dataGridView
Le contrle DataGridView offre un moyen puissant et flexible d'afficher des donnes sous
forme de tableau.
Pour ajouter une ligne dans le datagridview :
dataGridView1.Rows.Add("Soufi","Safa");
15.
TreeView
Le contrle TreeView permet d'afficher une collection de donnes hirarchique (ou imbrique,
ou rcursive) dans un arbre prsentant des nuds extensibles.
Rajouter un nud au dbut :
treeView1.Nodes.Add("nouveau noeud");
Rajouter un nud fils du nud n1 :
16.
Timer
M.El Kadali
Page 23 sur 45
timer11.Interval = 1000;
// Enable the timer
timer11.Enabled = true;
// Start the timer
timer11.Start();
17.
ProgressBar
18.
StatusStrip
19.
PictureBox
20.
dateTimePicker
M.El Kadali
21.
Page 24 sur 45
Les conteneurs
l. FlowLayoutPanel
Le contrle FlowLayoutPanel rorganise son contenu dans un sens de droulement horizontal
ou vertical. Vous pouvez spcifier le sens du droulement en dfinissant la valeur de la
proprit FlowDirection.
m. groupBox
Reprsente un contrle Windows qui affiche un frame autour d'un groupe de contrles avec une lgende
facultative.
n. Panel
Les contrles Panel Windows Forms permettent de regrouper d'autres contrles. Il existe trois raisons de
regrouper des contrles. Regroupement visuel d'lments connexes en vue de fournir une interface plus claire
l'utilisateur ; regroupement de programmation, des cases d'option par exemple ; enfin, au moment du design,
dplacement de plusieurs contrles comme une mme entit.
o. TabControl
Gre et affiche un ensemble donglets contenant des controles et des composants.
22.
Les menus
p. MenuStrip
Pour crer un menu principal, on choisit le composant "MenuStrip".
q. ContextMenuStrip
Dfinit un menu contextuel.
M.El Kadali
23.
Page 25 sur 45
Exemple 2 :
Exemple 3 :
s. Positionnement un contrle
Button b1 = new Button();
b1.Text = "Calculer";
b1.BackColor = Color.Beige;
Point pt = new Point(200, 22);
b1.Location = pt;
M.El Kadali
Page 26 sur 45
IX.
Les vnements
1 Dfinition
Un vnement est un message transmis par un objet pour signaler l'occurrence d'une action. L'action peut
tre provoque par une interaction utilisateur, telle qu'un clic de souris, ou peut tre dclenche par une autre
logique de programme. L'objet qui dclenche l'vnement est appel metteur d'vnement. L'objet qui
capture l'vnement et y rpond est appel rcepteur d'vnements.
24.
Evnements courants:
la souris vient d'entrer dans le domaine du contrle
la souris vient de quitter le domaine du contrle
: la souris bouge dans le domaine du contrle
: Pression sur le bouton gauche de la souris
: Relchement du bouton gauche de la souris
: Se produit lors du clique sur le bouton.
MouseEnter :
MouseLeave :
MouseMove
MouseDown
MouseUp
Click
Load
Enter
M.El Kadali
25.
Page 27 sur 45
Quand vous cliquez sur un bouton, Windows doit informer votre programme quun clic a t dtect.
Pour cela,
Windows appelle une fonction de votre programme. Une telle fonction sappelle fonction de
traitement de lvnement clic (event handler, ou plus simplement handler en anglais) .Cette
fonction doit avoir la signature suivante :
void xyz(object sender, EventArgs e);
26.
Tp
M.El Kadali
Page 28 sur 45
}
}
Deuxime faon ;
private void capital_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsLetter(e.KeyChar))
e.Handled = true;
}
3. Afficher un message au chargement du formulaire
4. Afficher un message la fermeture du formulaire
5. Lors du clique sur un radiobox, le formulaire prend la couleur choisie.
6.
27.
Ici, le but est de crer des vnements qui vont tre propres votre application.
u. Objets delegate
Un dlgu (delegate en anglais) est un objet (en fait, de la classe Delegate ou dune classe drive
de celle-ci, mais peu importe) qui permet dappeler une fonction, qui nest pas ncessairement
toujours la mme. Il peut mme sagir dun appel une srie de fonctions.
Prenons un exemple simple, que nous commenterons ensuite :
void f()
{
MessageBox.Show("Fonction f");
}
void g()
{
MessageBox.Show("Fonction g");
}
// ceci est une dfinition de type : T est un type
delegate void T();
private void button1_Click(object sender, EventArgs e)
{
T de = new T(f); // dclaration d'une variable. "de" fait rfrence
f
de(); // excute f
de = new T(g); //" de" fait maintenant rfrence g
de(); // excute g
}
T dsigne un type dobjet (au mme titre que int, double) et non une dclaration de variable, une
signature de fonction, ou quoi que ce soit dautre, comme un coup doeil rapide pourrait le faire
croire.
M.El Kadali
Page 29 sur 45
Un dlgu peut faire rfrence plusieurs fonctions, et ainsi les excuter les unes la suite des
autres (on parle alors de multicasting delegate). tout moment, il est en effet possible dajouter, ou
de retirer, des fonctions la liste des fonctions rfrences par un dlgu. Par exemple :
Notre variable de prend finalement la valeur null quand plus aucune fonction ne lui est lie.
Premire faon :
Dans le formulaire parent :
M.El Kadali
Page 30 sur 45
chaine1 = textBox1.Text;
// Fermeture du formulaire
this.Close();
Troisime faon:
X.
Conversions de variables
int n = Convert.ToInt16("14");
int n = 14;
string chaine = n.ToString();
int a = int.parse(5.5);
XI.
Exemple 1 :
Button b1 = new Button();
b1.Text = "Calculer";
b1.BackColor = Color.Beige;
Exemple 2 :
TextBox t1 = new TextBox();
M.El Kadali
t1.Text = "Nom";
t1.TabIndex = 4;
t1.TextAlign = HorizontalAlignment.Left
Exemple 3 :
TextBox t1 = new TextBox();
t1.Text = "Nom";
t1.Width = 400;
t1.Height = 200;
28.
Positionner un contrle
Button b1 = new Button();
b1.Text = "Calculer";
b1.BackColor = Color.Beige;
Point pt = new Point(200, 22);
b1.Location = pt;
29.
Ajout au formulaire
Exemple 1 :
CheckBox chk = new CheckBox();
chk.Text = "vert ";
this.Controls.Add(chk);
Exemple 2 : (ajout un Groupbox)
RadioButton rd = new RadioButton();
rd.Text = "bleu";
groupBox1.Controls.Add(rd);
XII.
Page 31 sur 45
Page 32 sur 45
M.El Kadali
//Console.WriteLine(j);
#endregion
#region Remove
string str = "azert";
//Console.WriteLine(str.Remove(2));
#endregion
#region Replace
string rep = "El kadiri abdellah";
string newRep = rep.Replace("ka", "KA");
//Console.WriteLine(newRep);
#endregion
#region Trim
string tr = "
class tdi
";
//Console.WriteLine("----Trim----");
//Console.Write("*");
//Console.Write(tr.Trim());
//Console.WriteLine("*");
//Console.WriteLine("----TrimStart----");
//Console.Write("*");
//Console.Write(tr.TrimStart());
//Console.WriteLine("*");
//Console.WriteLine("----TrimEnd----");
//Console.Write("*");
//Console.Write(tr.TrimEnd());
//Console.WriteLine("*");
#endregion
#region Upper & Lower
string name = "AbdEllah";
//Console.WriteLine(name.ToUpper());
//Console.WriteLine(name.ToLower());
#endregion
#region SubString
string str2 = "abcdefghj";
M.El Kadali
Page 33 sur 45
class Program {
static void Main(string[] args) {
string uneChaine = "l'oiseau vole au-dessus des nuages";
affiche("uneChaine=" + uneChaine);
affiche("uneChaine.Length=" + uneChaine.Length);
affiche("chaine[10]=" + uneChaine[10]);
affiche("uneChaine.IndexOf(\"vole\")=" + uneChaine.IndexOf("vole"));
affiche("uneChaine.IndexOf(\"x\")=" + uneChaine.IndexOf("x"));
affiche("uneChaine.LastIndexOf('a')=" + uneChaine.LastIndexOf('a'));
affiche("uneChaine.LastIndexOf('x')=" + uneChaine.LastIndexOf('x'));
affiche("uneChaine.Substring(4,7)=" + uneChaine.Substring(4, 7));
affiche("uneChaine.ToUpper()=" + uneChaine.ToUpper());
affiche("uneChaine.ToLower()=" + uneChaine.ToLower());
affiche("uneChaine.Replace('a','A')=" + uneChaine.Replace('a', 'A'));
string[] champs = uneChaine.Split(null);
for (int i = 0; i < champs.Length; i++) {
affiche("champs[" + i + "]=[" + champs[i] + "]");
}//for
affiche("Join(\":\",champs)=" + System.String.Join(":", champs));
affiche("(\" abc \").Trim()=[" + " abc ".Trim() + "]");
}//Main
public static void affiche(string msg) {
// affiche msg
Console.WriteLine(msg);
}//affiche
M.El Kadali
XIII.
Page 34 sur 45
Les fichiers
The .NET Framework enables you to use streams. A stream is a sequence of bytes,
which could come from a file on the file system, a network connection, or memory.
Streams enable you to read from or write to a data source in small, manageable data
packets.
The .NET Framework provides several stream classes that enable you to work with a
variety of data and data sources. When choosing which stream classes to use, you
need to consider the following:
What type of data you are reading or writing, for example, binary or
alphanumeric.
Where the data is stored, for example, on the local file system, in memory, or on
a web server over a network.
The .NET Framework class library provides several classes in the System.IO namespace
that you can use to read and write files by using streams.
The .NET Framework provides many stream classes that you can use to read and write
different types of data from different types of data sources. The following table
describes some of these stream classes, and when you might want to use them.
30.
M.El Kadali
Page 35 sur 45
x. Exemple complet
string chemin = @"C:\Users\Malika\Documents\projets c\test1\test1\MonFichier.txt";
M.El Kadali
FileStream fichier = new FileStream(
chemin, // le chemin du fichier.
FileMode.Open, // ouvrir un fihcier existant.
FileAccess.Read);// lire dans le fichier existant.
Page 36 sur 45
M.El Kadali
Page 37 sur 45
rd.Close();
fichier.Close();
31.
Page 38 sur 45
M.El Kadali
string(buffer)).ToString());
}
rd.Close();
fichier.Close();
M.El Kadali
Page 39 sur 45
{
rd.Read(buffer, 0, 10);
MessageBox.Show((new string(buffer)).ToString());
}
rd.Close();
XIV.
WPF
Lobjectif de WPF est de fournir nos interfaces les avances technologiques inclues dans le
FrameWork .Net. WPF permet dincorporer des documents, des multimdias, des graphique 2D
et 3D, des animations et autres.
1 Les bases
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<!-- mettre ses contrles ici-->
<Label Content="Nom" Height="23" HorizontalAlignment="Left" Margin="66,12,0,0" Name="label1"
VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="105,12,0,0" Name="textBox1"
VerticalAlignment="Top" Width="120" />
<Button Content="Valider" Height="25" HorizontalAlignment="Left" Margin="246,10,0,0" Name="button1"
VerticalAlignment="Top" Width="73" />
</Grid>
</Window>
M.El Kadali
32.
Page 40 sur 45
Les conteneurs
z. Le StackPanel
<Grid>
<!-- par dfaut l'orientation est vertical -->
<StackPanel Orientation="Horizontal">
<Button Name="b1" Content="bouton 1" Width="200"></Button>
<Button Name="b2" Content="bouton 2"></Button>
</StackPanel>
</Grid>
aa.Le WrapPanel
<Grid>
<!-- par dfaut l'orientation est horizontal -->
<WrapPanel Orientation="vertical">
<Button Name="b1" Content="bouton 1" Width="200"></Button>
<Button Name="b2" Content="bouton 2"></Button>
</WrapPanel>
</Grid>
33.
Impression
M.El Kadali
34.
XV.
using
using
using
using
using
Page 41 sur 45
Multimdia et Impression
Autres
System;
System.Collections.Generic;
System.Windows.Forms;
System.Text;
System.Text.RegularExpressions;
namespace test_cerftif
{
static class Program
{
/// <summary>
/// Point d'entre principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
// les conversions
//Implicit Conversion
int a = 4;
long b;
b = a; // Implicit conversion of int to long.you cannot implicitly. convert a long value to an int, because
this conversion risks losing information
//Explicit Conversion
int c;
long d = 5;
c = (int)d; // Explicit conversion of long to int
//Using the System.Convert Class
string possibleInt = "1234";
int count = Convert.ToInt32(possibleInt);
//TryParse Conversion:TryParse method enables you to determine whether the conversion will succeed
before you perform the conversion.
int number = 0;
string numberString = "1234";
if (int.TryParse(numberString, out number))
{
// Conversion succeeded, number now equals 1234.
}
else
{
// Conversion failed, number now equals 0.
M.El Kadali
Page 42 sur 45
}
//Manipulating Strings
//Concatenation by Using the + Operator
string address = "23";
address = address + ", Main Street";
address = address + ", Buffalo";
//Concatenation by Using the StringBuilder Class
StringBuilder address1 = new StringBuilder();
address1.Append("23");
address1.Append(", Main Street");
address1.Append(", Buffalo");
string concatenatedAddress = address1.ToString();
the
//Validating Strings :
//Regular expressions provide a mechanism that enables you to validate input. The .NET Framework
//provides the System.Text.RegularExpressions namespace that includes the Regex class. You can use
//Regex class in your applications to test a string to ensure that it conforms to the constraints of a
regular expression.
//Regex.IsMatch Method see if a string value contains any numerical digits.
var textToTest = "hell0 w0rld";
var regularExpression = "\\d"; // \d expression will match any numeric characters
var result = Regex.IsMatch(textToTest, regularExpression, RegexOptions.None);
if (result)
{
// Text matched expression.
}
string address2 = "23";
bool bl = address2.Contains("ab");
int lg = address2.Length;
string portion = address2.Substring(3, 5); //portion contiendra 5 caractres de adress2 en commancant
par le 3eme caractre
// DateTime
DateTime dt = new DateTime(2014, 3, 25);
string dd = dt.ToString("d");
TimeSpan dif = DateTime.Now.Subtract(dt);
int diffJour = dif.Days;
double annee = diffJour / 365.25;
// ref
//By using the ref keyword, you instruct the CLR to pass a reference to the parameter and
//not just the value of the parameter.
void annuler(ref int nb)
{
nb = 0;// nb retourn gardera la valeur 0
}
M.El Kadali
Page 43 sur 45
//Overloaded Methods
//Overloaded methods have the same name but different parameters
void StopService()
{
}
void StopService(string serviceName)
{
}
//Defining a Method with Optional Parameters
//The following code example shows how to define a method that accepts one mandatory parameter and
//two optional parameters.
void StopService(bool forceStop, string serviceName = null, int serviceId =1)
{
}
// call method example:
var forceStop = true;
StopService(forceStop);
var serviceName = "FourthCoffee.SalesService";
StopService(forceStop, serviceName);
//remarque : When defining a method that accepts optional parameters, you must specify all mandatory
parameters before any optional parameters.
// this examle is Incorrect Optional Parameter Definition
void StopService(string serviceName = null, bool forceStop, int serviceId = 1)
{
}
//Using Named Arguments
StopService(true, serviceID: 1);
// remarque :
// * When using named arguments in conjunction with optional parameters, you can easily omit
parameters.
// * You can mix positional and named arguments. However, you must specify all positional arguments
before any named arguments.
// Methods that Use Output Parameters
//A method can pass a value back to the code that calls it by using a return statement. If you need to
return more than a single value to the calling code, you can use output parameters to return additional data
from the method.
bool IsServiceOnline(string serviceName, out string statusMessage)
{
var isOnline = FourthCoffeeServices.GetStatus(serviceName);
if (isOnline)
{
statusMessage = "Services is currently running.";
}
else
{
statusMessage = "Services is currently stopped.";
}
return isOnline;
}
//Invoking a Method that Accepts an Output Parameter
var statusMessage = string.Empty;
var isServiceOnline = IsServiceOnline("FourthCoffee.SalesService", out statusMessage);
M.El Kadali
Page 44 sur 45
//Exceptions
try
{
// Try block.
}
catch ([catch specification 1])
{
// Catch block 1.
}
catch ([catch specification n])
{
// Catch block n.
}
// example :
try
{
}
catch (NullReferenceException ex)
{
// Catch all NullReferenceException exceptions.
}
catch (Exception ex)
{
// Catch all other exceptions.
}
finally //Some methods may contain critical code that must always be run, even if an unhandled
exception occurs.
{
// Code that always runs.
}
//Throwing Exceptions
//You can create an instance of an exception class in your code and throw the exception to indicate that
an exception has occurred.
var ex = new NullReferenceException("The 'Name' parameter is null.");
throw ex;
//Debugging and Tracing
//The Debug and Trace classes include methods to write format strings to the Output window in Visual
Studio, as well as to any other listeners that you configure.
int number;
Console.WriteLine("Please type a number between 1 and 10, and then press Enter");
string userInput = Console.ReadLine();
Debug.Assert(int.TryParse(userInput, out number),
string.Format("Unable to parse {0} as integer", userInput);
Debug.WriteLine(The current value of userInput is: {0}", userInput);
Debug.WriteLine(The current value of number is: {0}", number);
//Declaring an Enum
Day a = Day.Thursday;
enum jour { lundi, mardi, mercredi, jeudi };
jour favoriteDay = jour.jeudi;
jour un_jour = (jour)1;
//Creating a Struct
M.El Kadali
public struct Coffee
{
public int Strength;
public string Bean;
public string CountryOfOrigin;
// Other methods, fields, properties, and events.
}
//Instantiating a Struct
Coffee coffee1 = new Coffee();
coffee1.Strength = 3;
coffee1.Bean = "Arabica";
coffee1.CountryOfOrigin = "Kenya";
//Creating an Indexer
public struct Menu
{
private string[] beverages;
// This is the indexer.
public string this[int index]
{
get { return this.beverages[index]; }
set { this.beverages[index] = value; }
}
// Enable client code to determine the size of the collection.
public int Length
{ get { return beverages.Length; }
}
}
//Accessing Array Items by Using an Indexer
Menu myMenu = new Menu();
string firstDrink = myMenu[0];
int numberOfChoices = myMenu.Length;
}
}
Page 45 sur 45