2. Sommaire
1. Présentation du C#
2. Plateforme .NET
3. Types primitifs
4. Entrée et sortie de base
5. Tableaux
6. Boucle foreach
7. Passage de paramètres
3. Présentation de C#
• Créé par Anders Hejlsberg de Microsoft en 2001
• Langage OO, inspiré de C++ et proche de Java
• Normalisé par ECMA et ISO
• Principal langage de la plateforme .NET.
• Il est précompilé en MSIL (Microsoft Intermediate Language),
puis exécuté sur une machine virtuelle
• Permet de développer diverses applis (Win, Web, mobile, …)
• Il est non déclaratif (pas d'en-tête)
• La directive « using » permet de simplifier l'accès aux
fonctionnalités des namespaces
• Comme en Java, le point d'entrée est la méthode statique
« Main » de la classe de l'application
4. Plateforme .NET
C# J# VB.NET …
COMMON LANGUAGE SPECIFICATION
spécifications communes à tous les langages
ASP.NET
Web Forms et Web Services
Windows Forms
ADO.NET et XML
Librairie des classes de base
(System.IO, System.Data, System.Windows, …)
COMMON LANGUAGE RUN-TIME
(compilateur JIT du MSIL, chargeur de classe, garbage collector, …)
SYSTÈME D’EXPLOITATION
6. Entrée et sortie de base
sortie
• Permettent l’interactivité entre le programme et l’utilisateur
• La classe Console fournit les méthodes d’entrée/sortie
• Console.Write(expression) et
Console.WriteLine(expression) permettent d’écrire une
chaîne de caractères sur la console de l’écran
• La seconde fait un saut de ligne après l’écriture
• Exemples :
– Console.Write("BONJOUR");
– Console.WriteLine(nbr1+" + "+nbr2+" = "+som);
– Console.WriteLine("{0}+{1}={2}",nbr1,nbr2,som);
– Console.WriteLine();
7. Entrée et sortie de base
entrée
• Console.Read() lit le prochain caractère entré dans la
console et le renvoie sous la forme d‘un entier.
• Console.ReadLine() lit une ligne entrée dans la console et
la renvoie sous la forme d’une chaîne de caractères
• type_nombre.Parse(Console.ReadLine()) permet de
convertir la chaîne renvoyée en nombre de type type_nombre
• Exemple :
int nbr;
nbr = int.Parse(Console.ReadLine());
8. Entrée et sortie de base
exemple
• Exemple :
using System;
namespace exemple1_1{
class Program{
static void Main(string[] args){
Console.WriteLine("Entrez un entier : ");
int i = int.Parse(Console.ReadLine());
Console.WriteLine("Le carre de {0} est {1}",i,i*i);
}
}
}
9. Tableaux
• Un tableau est un objet
• Déclaration
type[] nomTableau;
• Allocation
nomTableau = new type [taille];
• Pré-initialisation
nomTableau = new type []{ val1, val2, …. };
ou <type>[] <nomTableau>={ val1, val2, …. };
• L'attribut Length donne la taille du tableau.
10. Boucle foreach
• La boucle foreach répète un traitement pour chaque élément
d'un tableau ou d'une collection d‘éléments
• Foreach ne permet pas de modifier les éléments
• Syntaxe
foreach (typeElement element in collectionDéléments)
{
// Code utilisant element courant
}
11. Passage de paramètre
• Par valeur
– Paramètre effectif accessible qu’en lecture
– Passage par défaut
• Par référence
– Paramètre effectif accessible en lecture et en écriture
– Syntaxe : typeRslt nomMeth(ref typeParam param) {…}
• Paramètre en sortie
– Paramètre effectif accessible qu’en écriture
– Syntaxe : typeRslt nomMeth(out typeParam param) {…}
• ref ou out doit aussi précédé un paramètre effectif