Les Composants Du C#
Les Composants Du C#
Les Composants Du C#
Sortie C#
Pour générer des valeurs ou imprimer du texte en C#, vous pouvez utiliser
la WriteLine()méthode :
Console.WriteLine("Hello World!");
La méthode d'écriture
Il existe également une Write()méthode similaire à WriteLine().
La seule différence est qu'il n'insère pas de nouvelle ligne à la fin de la sortie :
Commentaires C#
Les commentaires peuvent être utilisés pour expliquer le code C# et le rendre
plus lisible. Il peut également être utilisé pour empêcher l'exécution lors du test
d'un code alternatif.
// This is a comment
Console.WriteLine("Hello World!");
Commentaires multi-lignes C#
Les commentaires multilignes commencent par /*et se terminent par */.
Tout texte entre /*et */sera ignoré par C#.Cet exemple utilise un commentaire
multiligne (un bloc de commentaire) pour expliquer le code :
Console.WriteLine("Hello World!");
Variables C#
Les variables sont des conteneurs pour stocker des valeurs de données.
Console.WriteLine(name);
Vous pouvez également déclarer une variable sans affecter la valeur, et affecter
la valeur plus tard :
Exemple
int myNum;
myNum = 15;
Console.WriteLine(myNum);
Notez que si vous affectez une nouvelle valeur à une variable existante, elle
écrasera la valeur précédente :
Exemple
Remplacez la valeur de myNum20 :
Console.WriteLine(myNum);
Exemple
int myNum = 5;
Le constmot-clé est utile lorsque vous souhaitez qu'une variable stocke toujours
la même valeur, afin que les autres (ou vous-même) ne gâchent pas votre
code. Un exemple qui est souvent appelé une constante est PI (3.14159...).
Remarque : Vous ne pouvez pas déclarer une variable constante sans affecter
la valeur. Si vous le faites, une erreur se convient : un champ const nécessite
qu'une valeur soit fournie .
Variables d'affichage
La WriteLine()méthode est souvent utilisée pour afficher les valeurs des
variables dans la fenêtre de la console.
Toutes les variables C# doivent être identifiées par des noms uniques .
Les identifiants peuvent être des noms courts (comme x et y) ou des noms plus
descriptifs (age, sum, totalVolume).
// Good
int m = 60;
Types de données C#
Comme expliqué dans le chapitre sur les variables, une variable en C# doit être
un type de données spécifié :
int myNum = 5; // Integer (whole number)
Nombres
Les types de nombres sont divisés en deux groupes :
Les types entiers stockent des nombres entiers, positifs ou négatifs (tels que
123 ou -456), sans décimales. Les types valides sont int et long. Le type à
utiliser dépend de la valeur numérique.
Les types à virgule flottante représentent des nombres avec une partie
fractionnaire, contenant une ou plusieurs décimales. Les types valides
sont floatet double.
Même s'il existe de nombreux types numériques en C#, les plus utilisés pour les
nombres sont int(pour les nombres entiers) et double(pour les nombres à virgule
flottante). Cependant, nous les décrirons tous au fur et à mesure de votre
lecture.
Types entiers
Int
Le inttype de données peut stocker des nombres entiers de -2147483648 à
2147483647. En général, et dans notre tutoriel, le inttype de données est le
type de données préféré lorsque nous créons des variables avec une valeur
numérique.
Console.WriteLine(myNum);
Long
Le longtype de données peut stocker des nombres entiers de -
9223372036854775808 à 9223372036854775807. Ceci est utilisé
lorsque intn'est pas assez grand pour stocker la valeur. Notez que vous devez
terminer la valeur par un "L":
Console.WriteLine(myNum);
Console.WriteLine(myNum);
Double exemple
double myNum = 19.99D;
Console.WriteLine(myNum);
Numéros scientifiques
Un nombre à virgule flottante peut aussi être un nombre scientifique avec un
"e" pour indiquer la puissance de 10 :
float f1 = 35e3F;
double d1 = 12E4D;
Console.WriteLine(f1);
Console.WriteLine(d1);
Coulée de type C#
Le cast de type consiste à attribuer une valeur d'un type de données à un autre
type.
Casting implicite
Le transtypage implicite est effectué automatiquement lors du passage d'un
type de taille inférieure à un type de taille supérieure :
int myInt = 9;
Console.WriteLine(myInt); // Outputs 9
Console.WriteLine(myDouble); // Outputs 9
Casting explicite
Le casting explicite doit être fait manuellement en plaçant le type entre
parenthèses devant la valeur :
Console.WriteLine(myInt); // Outputs 9
Pourquoi Convertir ?
Plusieurs fois, il n'y a pas besoin de conversion de type. Mais parfois il faut le
faire. Jetez un œil au chapitre suivant, lorsque vous travaillez avec l'entrée
utilisateur , pour en voir un exemple.
Entrée utilisateur C#
Obtenir l'entrée de l'utilisateur
Vous avez déjà appris que Console.WriteLine()est utilisé pour sortir (imprimer)
des valeurs. Maintenant, nous allons utiliser Console.ReadLine()pour obtenir
l'entrée de l'utilisateur.
Dans l'exemple suivant, l'utilisateur peut entrer son nom d'utilisateur, qui est
stocké dans la variable userName. Puis on imprime la valeur de userName:
Console.WriteLine("Enter username:");
// Create a string variable and get user input from the keyboard and store
it in the variable
// Print the value of the variable (userName), which will display the
input value
Remarque : Si vous entrez une mauvaise entrée (par exemple, du texte dans
une entrée numérique), vous obtiendrez un message d'exception/d'erreur
(comme System.FormatException : 'La chaîne d'entrée n'était pas dans un
format correct.').
Vous en apprendrez plus sur les exceptions et sur la façon de gérer les erreurs
dans un chapitre ultérieur.
Opérateurs C#
Les opérateurs
Les opérateurs sont utilisés pour effectuer des opérations sur des variables et
des valeurs.
Dans l'exemple ci-dessous, nous utilisons l' + opérateur pour additionner deux
valeurs :
Bien que l' +opérateur soit souvent utilisé pour additionner deux valeurs, comme
dans l'exemple ci-dessus, il peut également être utilisé pour additionner une
variable et une valeur, ou une variable et une autre variable :
Opérateurs arithmétiques
Les opérateurs arithmétiques sont utilisés pour effectuer des opérations
mathématiques courantes :
Opérateurs d'affectation
Les opérateurs d'affectation sont utilisés pour affecter des valeurs aux variables.
Dans l'exemple ci-dessous, nous utilisons l' opérateur d' affectation= ( ) pour
affecter la valeur 10 à une variable appelée x :
int x = 10;
int x = 10;
x += 5;
Dans l'exemple suivant, nous utilisons l' opérateur supérieur à ( >) pour
savoir si 5 est supérieur à 3 :
int x = 5;
int y = 3;
Opérateurs logiques
Les opérateurs logiques sont utilisés pour déterminer la logique entre les
variables ou les valeurs :
Mathématiques C#
Math.Max( x,y )
La méthode peut être utilisée pour trouver la valeur la plus élevée
de x et y :Math.Max(x,y)
Math.Max(5, 10);
Math.Min( x,y )
La méthode peut être utilisée pour trouver la valeur la plus basse
de x et y :Math.Min(x,y)
Math.Min(5, 10);
Math.Sqrt( x )
La méthode renvoie la racine carrée de x :Math.Sqrt(x)
Math.Sqrt(64);
Chaînes C#
Les chaînes sont utilisées pour stocker du texte.
Longueur de chaine
Une chaîne en C # est en fait un objet, qui contient des propriétés et des
méthodes pouvant effectuer certaines opérations sur des chaînes. Par exemple,
la longueur d'une chaîne peut être trouvée avec la Lengthpropriété :
Autres méthodes
Il existe de nombreuses méthodes de chaîne disponibles, par
exemple ToUpper()and ToLower(), qui renvoie une copie de la chaîne convertie en
majuscule ou en minuscule :
string txt = "Hello World";
Concaténation de chaînes
L' +opérateur peut être utilisé entre les chaînes pour les combiner. C'est ce
qu'on appelle la concaténation :
Console.WriteLine(name);
Notez que nous avons ajouté un espace après "John" pour créer un espace
entre firstName et lastName à l'impression.
Console.WriteLine(name);
Ajouter des nombres et des chaînes
ATTENTION!
int x = 10;
int y = 20;
string x = "10";
string y = "20";
Interpolation de chaîne
Une autre option de concaténation de chaînes est l'interpolation de chaînes ,
qui remplace les valeurs des variables par des espaces réservés dans une
chaîne. Notez que vous n'avez pas à vous soucier des espaces, comme avec la
concaténation :
Notez également que vous devez utiliser le signe dollar ( $) lorsque vous utilisez
la méthode d'interpolation de chaîne.
Chaînes d'accès
Vous pouvez accéder aux caractères d'une chaîne en vous référant à son
numéro d'index entre crochets [].
// Full name
Console.WriteLine(lastName);
string txt = "We are the so-called "Vikings" from the north.";
string txt = "We are the so-called \"Vikings\" from the north.";
La séquence \\ insère une seule barre oblique inverse dans une chaîne :
OUI NON
ALLUMÉ ÉTEINT
VRAI FAUX
Valeurs booléennes
Un type booléen est déclaré avec le boolmot clé et ne peut prendre que les
valeurs trueou false:
Expression booléenne
Une expression booléenne est une expression C# qui renvoie une valeur
booléenne : Trueou False.
int y = 9;
Dans les exemples ci-dessous, nous utilisons l' opérateur égal à ( ==) pour
évaluer une expression :
int x = 10;
C# Si ... Sinon
Conditions C# et instructions If
C# prend en charge les conditions logiques habituelles des mathématiques :
Inférieur à : a < b
Inférieur ou égal à : a <= b
Supérieur à : a > b
Supérieur ou égal à : a >= b
Égal à a == b
Différent de : a != b
Vous pouvez utiliser ces conditions pour effectuer différentes actions pour
différentes décisions.
L'instruction if
Utilisez l' ifinstruction pour spécifier un bloc de code C# à exécuter si une
condition est True.
if (condition)
Notez que ifc'est en lettres minuscules. Les lettres majuscules (If ou IF)
généreront une erreur.Dans l'exemple ci-dessous, nous testons deux valeurs
pour savoir si 20 est supérieur à 18. Si la condition est True, imprimez du texte :
int y = 18;
if (x > y)
Exemple expliqué
La déclaration d'autre
Utilisez l' elseinstruction pour spécifier un bloc de code à exécuter si la condition
est False.
if (condition)
else
Console.WriteLine("Good day.");
else
Console.WriteLine("Good evening.");
Exemple expliqué
Dans l'exemple ci-dessus, le temps (20) est supérieur à 18, donc la condition
est False. Pour cette raison, nous passons à la elsecondition et imprimons à
l'écran "Bonsoir". Si l'heure était inférieure à 18, le programme imprimerait
"Bonne journée".
L'instruction else if
Utilisez l' else ifinstruction pour spécifier une nouvelle condition si la première
condition est False.
if (condition1)
}
else if (condition2)
else
Console.WriteLine("Good morning.");
Console.WriteLine("Good day.");
else
Console.WriteLine("Good evening.");
Dans l'exemple ci-dessus, le temps (22) est supérieur à 10, donc la première
condition est False. La condition suivante, dans la else ifdéclaration, est
également False, nous passons donc à la else condition
puisque condition1 et condition2 sont les deux False- et affichons à l'écran
"Bonsoir".
Au lieu d'écrire :
Console.WriteLine("Good day.");
else
Console.WriteLine("Good evening.");
}
Vous pouvez simplement écrire :
Console.WriteLine(result);
Instructions de commutation C#
Utilisez l' switchinstruction pour sélectionner l'un des nombreux blocs de code à
exécuter.
switch(expression)
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
break;
}
Voilà comment cela fonctionne:
int day = 4;
switch (day)
case 1:
Console.WriteLine("Monday");
break;
case 2:
Console.WriteLine("Tuesday");
break;
case 3:
Console.WriteLine("Wednesday");
break;
case 4:
Console.WriteLine("Thursday");
break;
case 5:
Console.WriteLine("Friday");
break;
case 6:
Console.WriteLine("Saturday");
break;
case 7:
Console.WriteLine("Sunday");
break;
La pause
Lorsque C # atteint un mot- break clé, il sort du bloc de commutation.
int day = 4;
switch (day)
case 6:
Console.WriteLine("Today is Saturday.");
break;
case 7:
Console.WriteLine("Today is Sunday.");
break;
default:
break;
Boucles
Les boucles peuvent exécuter un bloc de code tant qu'une condition spécifiée
est atteinte.
Les boucles sont pratiques car elles permettent de gagner du temps, de réduire
les erreurs et de rendre le code plus lisible.
C# While Boucle
La whileboucle parcourt un bloc de code tant qu'une condition spécifiée est True :
while (condition)
}
Remarque : N'oubliez pas d'augmenter la variable utilisée dans la condition,
sinon la boucle ne se terminera jamais !
do
while (condition);
int i = 0;
do
Console.WriteLine(i);
i++;
L' instruction 1 est exécutée (une fois) avant l'exécution du bloc de code.
L' instruction 3 est exécutée (à chaque fois) après l'exécution du bloc de code.
Console.WriteLine(i);
Exemple expliqué
Un autre exemple
Cet exemple n'imprimera que les valeurs paires entre 0 et 10 :
Console.WriteLine(i);
La boucle foreach
Il existe également une foreachboucle, qui est utilisée exclusivement pour
parcourir les éléments d'un tableau :
Console.WriteLine(i);
}
Remarque : Ne vous inquiétez pas si vous ne comprenez pas l'exemple ci-
dessus. Vous en apprendrez plus sur les tableaux dans le chapitre Tableaux
C# .
Coupure C#
Vous avez déjà vu l' breakinstruction utilisée dans un chapitre précédent de ce
didacticiel. Il a été utilisé pour "sauter" d'une switchdéclaration.
L' breakinstruction peut également être utilisée pour sortir d'une boucle .
if (i == 4)
break;
Console.WriteLine(i);
C# Continuer
L' continueinstruction interrompt une itération (dans la boucle), si une condition
spécifiée se produit, et continue avec l'itération suivante dans la boucle.
if (i == 4)
continue;
Console.WriteLine(i);
C# Arrays
Créer un tableau
Les tableaux sont utilisés pour stocker plusieurs valeurs dans une seule
variable, au lieu de déclarer des variables distinctes pour chaque valeur.
string[] cars;
Nous avons maintenant déclaré une variable qui contient un tableau de chaînes.
Pour y insérer des valeurs, nous pouvons utiliser un tableau littéral - placez les
valeurs dans une liste séparée par des virgules, à l'intérieur d'accolades :
Console.WriteLine(cars[0]);
// Outputs Volvo
cars[0] = "Opel";
Exemple
cars[0] = "Opel";
Console.WriteLine(cars[0]);
Console.WriteLine(cars.Length);
// Outputs 4
// Create an array of four elements, omitting the new keyword, and without
specifying the size
// Declare an array
string[] cars;
Console.WriteLine(cars[i]);
}
La boucle foreach
Il existe également une foreachboucle, qui est utilisée exclusivement pour
parcourir les éléments d'un tableau :
Console.WriteLine(i);
L'exemple ci-dessus peut être lu comme ceci : pour chaque string élément
(appelé i - comme dans index) dans cars , imprimez la valeur de i .
Trier un tableau
Il existe de nombreuses méthodes de tableau disponibles, par exemple Sort(),
qui trie un tableau par ordre alphabétique ou croissant :
// Sort a string
Array.Sort(cars);
Console.WriteLine(i);
// Sort an int
Array.Sort(myNumbers);
Console.WriteLine(i);
using System;
using System.Linq;
namespace MyApplication
{
class Program
Méthodes C#
Une méthode est un bloc de code qui ne s'exécute que lorsqu'elle est
appelée.
Les méthodes sont utilisées pour effectuer certaines actions, et elles sont
également appelées fonctions .
class Program
// code to be executed
Exemple expliqué
MyMethod();
}
static void Main(string[] args)
MyMethod();
MyMethod();
MyMethod();
Paramètres et arguments
Les informations peuvent être transmises aux méthodes en tant que
paramètre. Les paramètres agissent comme des variables à l'intérieur de la
méthode.
Ils sont spécifiés après le nom de la méthode, entre parenthèses. Vous pouvez
ajouter autant de paramètres que vous le souhaitez, il suffit de les séparer par
une virgule.
}
static void Main(string[] args)
MyMethod("Liam");
MyMethod("Jenny");
MyMethod("Anja");
// Liam Refsnes
// Jenny Refsnes
// Anja Refsnes
Paramètres multiples
Vous pouvez avoir autant de paramètres que vous le souhaitez, séparez-les
simplement par des virgules :
MyMethod("Liam", 5);
MyMethod("Jenny", 8);
MyMethod("Anja", 31);
// Liam is 5
// Jenny is 8
// Anja is 31
Notez que lorsque vous travaillez avec plusieurs paramètres, l'appel de méthode
doit avoir le même nombre d'arguments qu'il y a de paramètres, et les
arguments doivent être passés dans le même ordre.
Si nous appelons la méthode sans argument, elle utilise la valeur par défaut
("Norway") :
Console.WriteLine(country);
MyMethod("Sweden");
MyMethod("India");
MyMethod();
MyMethod("USA");
// Sweden
// India
// Norway
// USA
Un paramètre avec une valeur par défaut, est souvent appelé " paramètre
optionnel ". Dans l'exemple ci-dessus, countryest un paramètre facultatif
et "Norway"est la valeur par défaut.
Valeurs de retour
Dans la page précédente , nous avons utilisé le mot- voidclé dans tous les
exemples, ce qui indique que la méthode ne doit pas renvoyer de valeur.
Si vous souhaitez que la méthode renvoie une valeur, vous pouvez utiliser un
type de données primitif (tel que int ou double) au lieu de void, et utiliser
le return mot clé à l'intérieur de la méthode :
return 5 + x;
}
static void Main(string[] args)
Console.WriteLine(MyMethod(3));
// Outputs 8 (5 + 3)
return x + y;
Console.WriteLine(MyMethod(5, 3));
// Outputs 8 (5 + 3)
Vous pouvez également stocker le résultat dans une variable (recommandé, car
il est plus facile à lire et à maintenir) :
{
return x + y;
Console.WriteLine(z);
// Outputs 8 (5 + 3)
Arguments nommés
}
// The youngest child is: John
Surcharge de méthode
int MyMethod(int x)
float MyMethod(float x)
Considérez l'exemple suivant, qui comporte deux méthodes qui additionnent des
nombres de types différents :
return x + y;
return x + y;
Au lieu de définir deux méthodes qui doivent faire la même chose, il vaut mieux
en surcharger une.
return x + y;
return x + y;
C# Classes
C# - Qu'est-ce que la POO ?
OOP signifie Programmation Orientée Objet.
Lorsque les objets individuels sont créés, ils héritent de toutes les variables et
méthodes de la classe.
Vous en apprendrez beaucoup plus sur les classes et les objets dans le chapitre
suivant.
Classes et objets
Vous avez appris du chapitre précédent que C# est un langage de
programmation orienté objet.
Tout en C # est associé à des classes et des objets, ainsi qu'à ses attributs et
méthodes. Par exemple : dans la vraie vie, une voiture est un objet. La voiture
a des attributs , tels que le poids et la couleur, et des méthodes , telles que
la conduite et le freinage.
Une classe est comme un constructeur d'objets ou un "plan" pour créer des
objets.
class Car
Lorsqu'une variable est déclarée directement dans une classe, elle est souvent
appelée champ (ou attribut).
Ce n'est pas obligatoire, mais c'est une bonne pratique de commencer par une
première lettre majuscule lorsque vous nommez des classes. De plus, il est
courant que le nom du fichier C # et la classe correspondent, car cela rend
notre code organisé. Cependant, ce n'est pas obligatoire (comme en Java).
Créer un objet
Un objet est créé à partir d'une classe. Nous avons déjà créé la classe
nommée Car, nous pouvons donc maintenant l'utiliser pour créer des objets.
Pour créer un objet de Car, spécifiez le nom de la classe, suivi du nom de l'objet,
et utilisez le mot-clé new:
Créez un objet appelé " myObj" et utilisez-le pour imprimer la valeur de color :
class Car
Console.WriteLine(myObj.color);
class Car
Console.WriteLine(myObj1.color);
Console.WriteLine(myObj2.color);
prog2.cs
prog.cs
prog2.cs
class Car
prog.cs
class Program
Console.WriteLine(myObj.color);
Créez une Carclasse avec trois membres de classe : deux champs et une
méthode .
// The class
class MyClass
// Class members
Des champs
Dans le chapitre précédent, vous avez appris que les variables à l'intérieur d'une
classe sont appelées des champs, et que vous pouvez y accéder en créant un
objet de la classe, et en utilisant la syntaxe à point ( .).
Console.WriteLine(myObj.color);
Console.WriteLine(myObj.maxSpeed);
Vous pouvez également laisser les champs vides, et les modifier lors de la
création de l'objet :
class Car
string color;
int maxSpeed;
myObj.color = "red";
myObj.maxSpeed = 200;
Console.WriteLine(myObj.color);
Console.WriteLine(myObj.maxSpeed);
class Car
string model;
string color;
int year;
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
Constructeurs
Un constructeur est une méthode spéciale utilisée pour initialiser des
objets. L'avantage d'un constructeur, c'est qu'il est appelé lorsqu'un objet d'une
classe est créé. Il peut être utilisé pour définir des valeurs initiales pour les
champs :
Créez un constructeur :
class Car
public Car()
Car Ford = new Car(); // Create an object of the Car Class (this will
call the constructor)
Console.WriteLine(Ford.model); // Print the value of model
// Outputs "Mustang"
Notez également que le constructeur est appelé lorsque l'objet est créé.
Toutes les classes ont des constructeurs par défaut : si vous ne créez pas de
constructeur de classe vous-même, C# en crée un pour vous. Cependant, vous
ne pouvez pas définir de valeurs initiales pour les champs.
Paramètres du constructeur
Les constructeurs peuvent également prendre des paramètres, qui sont utilisés
pour initialiser les champs.
class Car
model = modelName;
Console.WriteLine(Ford.model);
// Outputs "Mustang"
class Car
{
model = modelName;
color = modelColor;
year = modelYear;
Modificateur privé
Si vous déclarez un champ avec un privatemodificateur d'accès, il n'est
accessible qu'au sein de la même classe :
class Car
{ { } }
Console.WriteLine(myObj.model);
La sortie sera :
Mustang
class Car
class Program
Console.WriteLine(myObj.model);
La sortie sera :
'Car.model' is inaccessible due to its protection level
The field 'Car.model' is assigned but its value is never used
Propriétés
Vous avez appris du chapitre précédent que privateles variables ne sont
accessibles qu'au sein d'une même classe (une classe extérieure n'y a pas
accès). Cependant, nous devons parfois y accéder - et cela peut être fait
avec des propriétés.
Une propriété est comme une combinaison d'une variable et d'une
méthode, et elle a deux méthodes : une getet une setméthode :
class Person
}
Exemple expliqué
class Person
class Program
{
Person myObj = new Person();
myObj.Name = "Liam";
Console.WriteLine(myObj.Name);
La sortie sera :
Liam
Héritage C#
Héritage (classe dérivée et de base)
En C#, il est possible d'hériter des champs et des méthodes d'une classe à une
autre. Nous regroupons le "concept d'héritage" en deux catégories :
Console.WriteLine("Tuut, tuut!");
}
class Program
// Call the honk() method (From the Vehicle class) on the myCar object
myCar.honk();
// Display the value of the brand field (from the Vehicle class) and
the value of the modelName from the Car class
}
Pourquoi et quand utiliser "Héritage" ?
- C'est utile pour la réutilisabilité du code : réutilisez les champs et les
méthodes d'une classe existante lorsque vous créez une nouvelle classe.
Le mot-clé scellé
Si vous ne voulez pas que d'autres classes héritent d'une classe, utilisez le
mot- sealedclé :
...
...
Polymorphisme et méthodes de
substitution
Le polymorphisme signifie "plusieurs formes", et il se produit lorsque nous
avons de nombreuses classes liées les unes aux autres par héritage.
Par exemple, pensez à une classe de base appelée Animalqui a une méthode
appelée animalSound(). Les classes dérivées d'animaux pourraient être des
cochons, des chats, des chiens, des oiseaux - et ils ont aussi leur propre
implémentation d'un son d'animal (le cochon ronfle, et le chat miaule, etc.) :
Nous pouvons maintenant créer des objets et appeler la Pigméthode sur les
deux : DoganimalSound()
{
public void animalSound()
class Program
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
La sortie sera :
{
Console.WriteLine("The pig says: wee wee");
class Program
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
La sortie sera :
The animal makes a sound
The pig says: wee wee
The dog says: bow wow
C# Abstraction
Classes abstraites et méthodes
L' abstraction de données est le processus consistant à masquer certains
détails et à ne montrer que les informations essentielles à l'utilisateur.
L'abstraction peut être réalisée avec des classes abstraites ou des
interfaces (sur lesquelles vous en apprendrez plus dans le chapitre suivant).
Classe abstraite : est une classe restreinte qui ne peut pas être utilisée
pour créer des objets (pour y accéder, elle doit être héritée d'une autre
classe).
Méthode abstraite : ne peut être utilisée que dans une classe abstraite
et n'a pas de corps. Le corps est fourni par la classe dérivée (héritée de).
Une classe abstraite peut avoir à la fois des méthodes abstraites et régulières :
Console.WriteLine("Zzz");
Pour accéder à la classe abstraite, elle doit être héritée d'une autre
classe. Convertissons la classe Animal que nous avons utilisée dans le
chapitre Polymorphisme en une classe abstraite.
// Abstract class
// Regular method
Console.WriteLine("Zzz");
}
class Program
Interface C#
Interfaces
Une autre façon de réaliser l'abstraction en C # consiste à utiliser des
interfaces.
An interfaceest une " classe complètement abstraite ", qui ne peut contenir
que des méthodes et des propriétés abstraites (avec des corps vides) :
// interface
interface Animal
Il est considéré comme une bonne pratique de commencer par la lettre "I" au
début d'une interface, car cela permet à vous-même et aux autres de vous
souvenir plus facilement qu'il s'agit d'une interface et non d'une classe.
Pour accéder aux méthodes d'interface, l'interface doit être "implémentée" (un
peu comme héritée) par une autre classe. Pour implémenter une interface,
utilisez le : symbole (comme pour l'héritage). Le corps de la méthode
d'interface est fourni par la classe "implement". Notez que vous n'êtes pas
obligé d'utiliser le mot- override clé lors de l'implémentation d'une interface :
// Interface
interface IAnimal
class Program
myPig.animalSound();
}
Remarques sur les interfaces :
Interfaces multiples
Pour implémenter plusieurs interfaces, séparez-les par une virgule :
interface IFirstInterface
}
interface ISecondInterface
Console.WriteLine("Some text..");
class Program
myObj.myMethod();
myObj.myOtherMethod();
}
Énumérations C#
An enumest une "classe" spéciale qui représente un groupe
de constantes (variables non modifiables/en lecture seule).
Pour créer un enum, utilisez le enummot clé (au lieu de class ou interface) et
séparez les éléments enum par une virgule :
enum Level
Low,
Medium,
High
Console.WriteLine(myVar);
class Program
enum Level
Low,
Medium,
High
Console.WriteLine(myVar);
La sortie sera :
Medium
Fichiers C#
Travailler avec des fichiers
La Fileclasse de l' espace de System.IOnoms, nous permet de travailler avec des
fichiers :
using System.IO; // include the System.IO namespace
Pour une liste complète des méthodes File, accédez à Microsoft .Net File Class
Reference .
La sortie sera :
Hello World!
Exceptions C# - Try..Catch
Exception C#
Lors de l'exécution du code C#, différentes erreurs peuvent se produire :
erreurs de codage faites par le programmeur, erreurs dues à une mauvaise
saisie ou à d'autres choses imprévisibles.
C# essayer et attraper
L' tryinstruction vous permet de définir un bloc de code à tester pour les erreurs
pendant son exécution.
try
catch (Exception e)
Console.WriteLine(myNumbers[10]); // error!
Console.WriteLine(myNumbers[10]);
catch (Exception e)
Console.WriteLine(e.Message);
La sortie sera :
Index was outside the bounds of the array.
try
Console.WriteLine(myNumbers[10]);
catch (Exception e)
La sortie sera :
Something went wrong.
Pour terminer
L' finallyinstruction vous permet d'exécuter du code, après try...catch, quel que
soit le résultat :
try
Console.WriteLine(myNumbers[10]);
catch (Exception e)
finally
La sortie sera :
Something went wrong.
The 'try catch' is finished.
Le mot-clé lancer
L' throwinstruction vous permet de créer une erreur personnalisée.
else
checkAge(15);
checkAge(20);
La sortie sera :
Access granted - You are old enough!