Tracks
/
C#
C#
/
Übungen
/
Fernbedienungen aufräumen
Fernbedienungen aufräumen

Fernbedienungen aufräumen

Lernübung

Einführung

Verschachtelte Typen

C#-Typen kannst du innerhalb des Gültigkeitsbereichs einer Klasse oder eines Structs definieren. Der umschließende Typ fungiert dabei als eine Art Namespace. Auf den Typ greifst du über den umschließenden Typ und die Punktsyntax zu.

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

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

Für innere Typen kannst du Zugriffsebenen festlegen.

Private Member des äußeren Typs sind für Member des inneren Typs im Gültigkeitsbereich, umgekehrt gilt das nicht.

Anleitung

Einige „andere“ Entwickler haben am Projekt des ferngesteuerten Autos remote-control-competition gearbeitet. Du wurdest gerufen, um den Code aufzuräumen.

1. Trenne die Zuständigkeiten zwischen dem Auto selbst und dem Telemetriesystem

Refaktoriere die Klasse RemoteControlCar so, dass die Telemetriemethoden und -eigenschaften ausgelagert und über eine Telemetry-Eigenschaft aufgerufen werden.

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. Verhindere, dass anderer Code zu viele Abhängigkeiten vom Typ Telemetry eingeht

Stelle sicher, dass die Telemetry-Instanz nicht außerhalb des Gültigkeitsbereichs des Autos erstellt werden kann.

3. Verhindere, dass anderer Code Abhängigkeiten vom Speed-Struct eingeht

Stelle sicher, dass das Speed-Struct nicht außerhalb des Gültigkeitsbereichs der Klasse RemoteControlCar verwendet werden kann.

4. Verhindere, dass anderer Code Abhängigkeiten vom SpeedUnits-Enum eingeht

Stelle sicher, dass das SpeedUnits-Enum nicht außerhalb des Gültigkeitsbereichs der Klasse RemoteControlCar verwendet werden kann.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
C# Exercism

Bereit, mit Fernbedienungen aufräumen zu starten?

Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.