Contenu du cours
C# au-delà des Bases
C# au-delà des Bases
1. Structures Supplémentaires et Gestion des Fichiers
Qu'est-ce Que les Lists?Pratiquer la Déclaration de ListeMéthodes de ListeQu'est-ce Que Les Dictionnaires ?Pratiquer les DictionnairesLecture des Fichiers à l'Aide de StreamReaderLecture des Fichiers à l'Aide des Méthodes de FileÉcriture de FichiersGestion des ErreursPratiquer la Gestion des Erreurs
2. Structures et Énumérateurs
Qu'est-ce Que les Structs?Définir et Utiliser une StructurePratiquer les StructuresStructures With Other Data StructuresMéthodes de StructureAccéder Correctement aux Champs dans les Méthodes de StructPratiquer les MéthodesConstructeurs de StructPratiquer les ConstructeursÉnumérateursPratiquer l'Énumérateur
3. Introduction à la Programmation Orientée Objet (POO)
Pratiquer le Polymorphism
Le programme ci-dessous contient une superclasse appelée Shape
et trois classes dérivées appelées Rectangle
, Square
et Circle
. Le problème avec le code est que les méthodes ne sont pas correctement redéfinies puisque la sortie affiche 0.0
pour les trois instructions Console.WriteLine
, ce qui implique que les méthodes de la classe de base sont exécutées au lieu des méthodes de la classe dérivée.
Modifiez le code de manière à ce que les deux méthodes, à savoir getArea
et calculatePerimeter
, soient correctement redéfinies.
index
using System; using System.Collections.Generic; class Shape { // Perimeter is the length of the 'outline' of a shape public float perimeter; // Change code below this line public float getArea() { return 0.0f; } protected float calculatePerimeter() { return 0.0f; } // Change code above this line } class Rectangle : Shape { float width; float height; public Rectangle(float width, float height) { this.width = width; this.height = height; this.perimeter = this.calculatePerimeter(); } // Change code below this line public float getArea() { return width * height; } protected float calculatePerimeter() { return width * 2 + height * 2; } // Change code above this line } class Square : Shape { float length; public Square(float length) { this.length = length * length; this.perimeter = calculatePerimeter(); } // Change code below this line public float getArea() { return length * length; } protected float calculatePerimeter() { return 4 * length; } // Change code above this line } class Circle : Shape { float radius; public Circle(float radius) { this.radius = radius; this.perimeter = calculatePerimeter(); } // Change code below this line public float getArea() { return 3.14f * radius * radius; } protected float calculatePerimeter() { return 2.00f * 3.14f * radius; } // Change code above this line } class ConsoleApp { static void Main() { List<Shape> shapes = new List<Shape>(); shapes.Add(new Rectangle(10f, 20f)); shapes.Add(new Square(10f)); shapes.Add(new Circle(10f)); foreach (Shape shape in shapes) { Console.WriteLine(shape.getArea()); } } }
Tout était clair ?
Merci pour vos commentaires !
Section 5. Chapitre 5