Parcours
/
C#
C#
/
Exercices
/
Nettoyage de la télécommande
Nettoyage de la télécommande

Nettoyage de la télécommande

Exercice d'apprentissage

Introduction

Types imbriqués

Les types C# peuvent être définis dans la portée d'une classe ou d'un struct. Le type englobant fournit une sorte d'espace de noms. On accède au type via le type englobant, avec la syntaxe pointée.

class Outer
{
    public interface IInner {}
    public enum EInner {}
    public class CInner {}
    public struct SInner {}
}

var outer = new Outer();
var inner = new Outer.CInner();

Tu peux définir des niveaux d'accès pour les types imbriqués.

Les membres privés du type externe sont accessibles aux membres du type imbriqué, mais pas l'inverse.

Instructions

D'« autres » développeurs ont travaillé sur le projet de voiture télécommandée remote-control-competition. On t'a appelé pour nettoyer le code.

1. Sépare les préoccupations entre la voiture elle-même et le système de télémétrie

Réécris la classe RemoteControlCar pour séparer les méthodes et les propriétés de télémétrie, accessibles via une propriété Telemetry.

var car = new RemoteControlCar();
car.Telemetry.Calibrate();
car.Telemetry.SelfTest();
car.Telemetry.ShowSponsor("Walker Industries Inc.");
car.CurrentSponsor
// => "Walker Industries Inc."
car.Telemetry.SetSpeed(100, "cps");
car.GetSpeed()
// => "100 centimeters per second"

2. Empêche le reste du code de dépendre excessivement du type Telemetry

Fais en sorte que l'instance Telemetry ne puisse pas être créée en dehors de la portée de la voiture.

3. Empêche le reste du code de dépendre de la structure Speed

Fais en sorte que la structure Speed ne puisse pas être utilisée en dehors de la portée de la classe RemoteControlCar.

4. Empêche le reste du code de dépendre de l'énumération SpeedUnits

Fais en sorte que l'énumération SpeedUnits ne puisse pas être utilisée en dehors de la portée de la classe RemoteControlCar.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
C# Exercism

Prêt à commencer Nettoyage de la télécommande ?

Inscris-toi sur Exercism pour apprendre et maîtriser C# avec 62 concepts178 exercices, et un vrai mentorat humain, le tout gratuitement.