Syntaxe C#


Plan Introduction NET Objectifs Structure CLS C

Historique du Framework NET NET une technologie de Microsoft pour la cration et lexcution de la nouvelle gnration dapplications et de services Web XML Sortie de Visual Studio NET 2002 et du Framework NET 10 en Janvier 2002 Sortie de Visual Studio 2005 du Framework NET 20 en Novembre 2005 Sortie de Visual Studio 2013 du Framework NET 451 en Octobre 2013


Pile Framework NET CLR CLR Common Language Runtime Agent qui manage le code au moment de lexcution gestion de la mmoire gestion des threads communication distance stricte scurit des types Linteroprabilit entre les codes manags et non manags

Pile Framework NET BCL BCL Base Class Library Bibliothque de classes NET Collection de types rutilisables qui sintgrent parfaitement au Common Language Runtime Oriente objet Driver de nouvelles classes Support de tches courantes gestion de chanes collection de donnes connectivit de bases de donnes accs aux fichiers Communication sur rseau

Types dapplications et de services NET Applications consoles Applications GUI Windows Windows Forms Applications Windows Presentation Foundation WPF Applications ASPNET Bibliothque de classes

Framework NET languages de programmation VB C C J JScript Cobol vb cpp cs jsl js cob Microsoft Intermediate Language MSIL Respectent la Common Language Specification CLS Indpendant de la plate-forme hardware

C Historique Cr par Anders Hejlsberg de Microsoft 1 re version sortie en 2002 Dernire version C 50 sortie en Juin 2013 Conception initiale inspire de C et Java

Syntaxe C Commentaires static void Mainstring args Ceci est un commentaire sur une seule ligne Ceci est un commentaire sur plusieurs lignes

Syntaxe C Commentaires de documentation ltsummarygt Point dentre du programme ltsummarygt ltparam namequotargsquotgtTableau de chaines argumentsltparamgt static void Mainstring args

Syntaxe C Identificateurs Le premier caractre doit commencer par un caractre alphanumrique UNICODE ou le caractre de soulignement Les caractres suivants de lidentificateur peuvent contenir des caractres unicode C est sensible la casse Compteur et compteursont des identificateurs diffrents Un identificateur ne peut tre un mot rserv de C if int while Un mot rserv de C par exemple int peut tre utilis comme nom de variable condition de le prfixer de

Syntaxe C Exemples didentificateurs Identificateurs valides String Prnom عددحقيقي float int nombre int Identificateurs non valides float else String 1mot Int nombre

Syntaxe C Structure dinstruction Toute instruction doit se terminer par point-virgule Les blancs sont ignors Le code suivant ne prsente aucun problme sauf la mauvaise prsentation Console WriteLine quotBonjourquot

Types C Entiers byte cod sur un octet 8 bits de 0 255 sbyte 1 octet de -128 127 short 2 octets de -32768 32767 ushort Entier non sign sur 2 octets de 0 65535 int entier sign cod sur 32 bits de -231 231-1 uint entier non sign cod sur 32 bits de 0 4 294 967 295 long entier sign cod sur 64 bits de -921018 et 921018 ulong entier sign cod sur 64 bits de 0 a 181018

Types C Entiers Les littraux entiers sont par dfaut considrs comme int sauf en cas du dpassement o ils seront considrs comme long Exemple long L01 100conversion dun int en long long L02 100Lpas de conversion long L02 5000000000 pas de conversion int i 20 entier exprim en base 10 int k 020 entier exprim en base 10 int m 0x14 entier exprim en base 16 int n 5000000000 Erreur dpassement de lintervalle int

Types C Entiers Attention les oprations de calculs peuvent donner des dpassements non identifis par le compilateur Utiliser des types supportant les rsultats possibles Exemple La valeur max pour un int est 2 147 483 648 int i 2000000000 int j 2 iDpassement de la valeur maximale dun int ConsoleWriteLinejAffiche -294967296 ConsoleReadLine

Types C rels float rel cod sur 32 bits double rel cod sur 64 bits decimal rel cod sur 128 bits Exemples double d1 7D double d2 25 Les nombres virgules sont des doubles par dfaut double d3 3678E2 3678 float f1 14f decimal m1 69m

Types C rels Attention au conversions On ne peut convertir un type rel plus prcis en type rel moins prcis sans risque de perte de prcision Exemples float f 12 Erreur de compilation 12 est un double double d 34f Aucune erreur

Types C boolen bool Prend deux valeurs possible true pour vrai false pour faux Exemple bool b true if b ConsoleWriteLinequotb est vraiquot

Types C caractre Unicode char caractre Unicode cod sur 16 bits Remarque char du langage c est cod sur 8 bits char c1 A Utilisation directe du caractre char c2 x41 Code Unicode du caractre en hexadcimal char c3 u0041 Code Unicode du caractre A

Types C chanes de caractres string classe de chane caractres Chaque caractre est cod sur 16 bits Exemple string chaine01 quotBonjourquot string chaine02 quotMonsieurquot Length est une proprit qui donne la longueur de la chaine ConsoleWriteLinequotBonjourquotLength Pour la concatnation on utilise le symbole ConsoleWriteLinechaine01 quot quot chaine02 Affiche j 3 est lindice du 4 me caractre j ConsoleWriteLinechaine013

Types C chanes de caractres Caractres de contrle n retour la ligne t tabulation horizontale b retour arrire Antislach guillemet simple quot guillemet double

Types C chanes de caractres Caractres de contrle Exemple ConsoleWriteLinequotSalutt Je suisnvenu bvous dire quotSalutquotquot

Types C chanes de caractres Ignorer les Caractres de contrle Chane Verbatim ou textuelle La chaine est prcde du caractre Pour crire un guillemet il faut le doubler Exemple La ligne suivante affiche quotCan vaquot ConsoleWriteLinequotquotquotCan vaquotquotquot

Types C chanes de caractres Retour la ligne dans un littral chane string s1 quotBonjour Aliquot Lcriture prcdente nest pas valide Lcriture suivante est valide string s2 quotBonjour Aliquot

Types C chanes de caractres Chane de format Le contenu est dtermin pendant lexcution Des espaces rservs seront remplacs lors de lexcution int i 7 int j 9 string s SystemStringFormatquoti01j2quot i quotnquot j Affiche i7 j9 ConsoleWriteLines

Instructions C Constantes Le mot clef const est utilis pour indiquer une constante La variable doit tre initialise et sa valeur ne pourra tre change par la suite Ne peut tre initialise qu partir dune autre constante Exemple int i 1 const int j 2 Linstruction suivante donne une erreur de compilation const int k i const int k j k2 Erreur car la valeur de k ne peut tre change


Types C Valeur ou Rfrence - Les types valeur contiennent directement des valeurs - Les types rfrences contiennent des rfrences vers des objets - Diffrence lors de la copie copie de valeur copie de rfrence

Types C Valeur ou Rfrence int i 3 Personne p1 new Personne p1Nom quotAliquot int j i Personne p2 p1 i p1Nom quotSamirquot ConsoleWriteLinequoti0 j1 et p2Nom2quot ijp2Nom

Types C Types valeur Structures Types numriques Types intgraux int long Types virgule flottante float double decimal bool Structures dfinies par lutilisateur A voir aprs numrations A voir aprs

Types C Types Rfrence Classe Interface A voir aprs Dlgu

Types C string un type immuable Un objet chane de caractre ne peut tre modifi une fois il est cre Avantages - Copie rapide et simple par duplication de la rfrence - Type sre pour le multi-threading Exemple string s quotBONJOURquot sToLower ConsoleWriteLines Quel est le rsultat

Types C string un type immuable string s1 quotBonjourquot string s2 quotBonjourquot string s1 quotSalutquot s2 s1 Bonjour Salut

Types C string un type immuable Attention aux concatnations rptes Quelle est la taille de mmoire occupe par les chanes utilises par ce code string s StringEmpty int i 0 while i lt100 s s quotAquot i

Types C string un type immuable Solution Utiliser plutt la classe StringBuilder StringBuilder sb new StringBuilder int i 0 while i lt 100 sbAppendquotAquot i

Types C Tableaux Un tableau est une structure de donnes qui contient plusieurs variables du mme type Dclaration Type nomTableau Les tableaux sont indexs partir de zro un tableau avec n lments est index de 0 n-1 Les lments du tableau peuvent tre de nimporte quel type y compris un type tableau La valeur par dfaut des lments de tableau numriques est gale zro et les lments de rfrence ont la valeur null

Types C Tableaux Exemples de dclaration Dclarer un tableau unidimensionnel int k 10 int t1 Remarquer la non dclaration de la taille t1 new intk Le tableau est rempli par des 0 Dclaration et initialisation int t2 new int 1 3 5 7 9 Syntaxe alternative int t3 1 2 3 4 5 6

Types C Tableaux Exemples de dclaration Dclarer un tableau de deux dimensions matrice 2x3 int tableauBiDimensionel new int2 3 Dclaration et initialisation int tableauBiDimensionel2 1 2 3 4 5 6 Affiche 5 ConsoleWriteLinetableauBiDimensionel21 1 Erreur dxcution Index en dehors des limites du tableau ConsoleWriteLinetableauBiDimensionel22 2

Types C Tableaux Exemples de dclaration Dclarer un tableau en escalier ou dchiquet Un tableau de tableaux int tableauEscalier new int6 Initialiser les valeurs du premier lment un tableau de tableauEscalier tableauEscalier0 new int4 1 2 3 4 Affiche 4 ConsoleWriteLinetableauEscalier03


Types C Tableaux Indices Lindice daccs au tableau peut tre une constante un nom de variable ou le rsultat dune opration arithmtique On peut donc crire int i 1 j 2 int t 1 2 3 4 t0 10 indice littral ti 20 indice nom de variable ti j 30 indice expression

Instructions C Bloc dinstructions Une instruction se termine par point-virgule Plusieurs instructions peuvent tre entoures daccolades Porte static void Mainstring args int i 1 Erreur de compilation i nexiste pas en dehors des accolades ConsoleWriteLinei

Instructions C if-else if ltconditiongt Code excut si condition est vrai else if ltautreConditiongt Code excut si autreCondition est vraie else Code excut si condition et autreCondition sont fausses

Instructions C if-else oprateur dgalit oprateur de diffrence lt gt lt gt oprateurs de comparaison Ou logique ampamp Et logique

Instructions C oprateur conditionnel Syntaxe conditionexpressiontrueexpressionfalse Exemple int i 11 string s i 2 0 quotpairquot quotimpairquot Affiche impair ConsoleWriteLines

Instructions C Construction switch Syntaxe switch ltuneValeurgt case ltval1gt Code excut si uneValeur est gale val1 break case ltval2gt case ltval3gt Code excut si uneValeur est gale val2 ou val3 break default Code excut si uneValeur est diffrente de val1 val2 et val3 break

Instructions C Construction switch Linstruction switch permet de tester une valeur spcifie par rapport dautres valeurs Si lune des valeurs correspond la valeur teste alors le code associ est automatiquement excut Si aucune valeur ne correspond la valeur teste alors le code associ la clause default si elle existe sera excut Note Veillez ne pas oublier linstruction break entre chaque case sinon les instructions associes aux valeurs suivantes seront excutes Le switch ne peut tre utilis quavec les types entiers char bool ainsi que les numrations et les chanes de caractres

Instructions C boucle while Syntaxe while expression code rpt tant que expression reste vraie

Instructions C boucle do while Syntaxe do code excut au moins une fois code rpt tant que expression reste vraie while expression

Instructions C boucle for Syntaxe for instructions dinitialisation condition instructions de fin de boucle une ou plusieurs instructions qui seront excutes tant que la condition est vraie

Instructions C boucle for Exemples for int i 0 j 10 i lt 5 i j-- int i0 j10 for ilt5 i j-- for i j--

Instructions C boucle avec break ou continue break termine la boucle englobante la plus proche continue passe le contrle litration suivante de la boucle

Instructions C boucle foreach foreach rpte un groupe dinstructions incorpores pour chaque lment dun tableau ou dune collection dobjets Syntaxe foreach typeobjet element in collection Code rpt pour chaque lment de la collection

Instructions C boucle foreach Exemple int nombres 4 5 6 1 2 3 -2 -1 0 foreach int n in nombres ConsoleWritequot0 quot n Sortie 4 5 6 1 2 3 -2 -1 0

Type enum Le mot cl enum est utilis pour dclarer une numration cest--dire un type distinct constitu dun ensemble de constantes nommes que lon appelle liste dnumrateurs Exemple enum Civilit Monsieur Mademoiselle Madame

Type enum Chaque type dnumration a un type sous-jacent qui peut tre nimporte quel type intgral enum Civilit Monsieur Mademoiselle Madame Civilit c CivilitMademoiselle ConsoleWriteLineintc

Omar Ajouaou
Programmation Orientée Objet
أرسلت .
- الملفات : الملفات.
- المستوى : تقني متخصص.
- الشعبة : Techniques de Développement Informatique.
- الوحدة : Programmation Orientée Objet.
كلمات مفتاحية :
syntaxe
syntaxe