Tracks
/
C#
C#
/
Ejercicios
/
Limpieza del control remoto
Limpieza del control remoto

Limpieza del control remoto

Ejercicio de aprendizaje

Introducción

Tipos anidados

Los tipos de C# se pueden definir dentro del ámbito de una clase o una estructura. El tipo contenedor proporciona una especie de espacio de nombres. Se accede al tipo a través del tipo contenedor con la sintaxis de punto.

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

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

Puedes establecer niveles de acceso para los tipos internos.

Los miembros privados del tipo contenedor están en el ámbito de los miembros del tipo interno, pero no al revés.

Instrucciones

Unos desarrolladores «otros» han estado trabajando en el proyecto del auto a control remoto remote-control-competition. Te han llamado para limpiar el código.

1. Separa las responsabilidades entre el propio auto y el sistema de telemetría

Refactoriza la clase RemoteControlCar para separar los métodos y las propiedades de telemetría, a los que se accede a través de una propiedad 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. Evita que otro código dependa demasiado del tipo Telemetry

Asegúrate de que la instancia de Telemetry no se pueda crear fuera del ámbito del auto.

3. Evita que otro código dependa de la estructura Speed

Asegúrate de que la estructura Speed no se pueda usar fuera del ámbito de la clase RemoteControlCar.

4. Evita que otro código dependa de la enumeración SpeedUnits

Asegúrate de que la enumeración SpeedUnits no se pueda usar fuera del ámbito de la clase RemoteControlCar.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
C# Exercism

¿Todo listo para empezar Limpieza del control remoto?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.