Track
/
C#
C#
/
Esercizi
/
Pulizia del radiocomando
Pulizia del radiocomando

Pulizia del radiocomando

Esercizio di apprendimento

Introduzione

Tipi annidati

I tipi di C# possono essere definiti all'interno dello scope di una classe o di uno struct. Il tipo che li contiene fornisce una sorta di namespace. Si accede al tipo tramite il tipo che lo contiene, con la sintassi del punto.

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

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

Puoi impostare i livelli di accesso per i tipi annidati.

I membri privati del tipo esterno sono nello scope dei membri del tipo annidato, ma non viceversa.

Istruzioni

Alcuni «altri» sviluppatori hanno lavorato al progetto dell'auto radiocomandata remote-control-competition. Ti hanno chiamato per ripulire il codice.

1. Separa le responsabilità tra l'auto stessa e il sistema di telemetria

Riorganizza la classe RemoteControlCar in modo da separare i metodi e le proprietà di telemetria, accessibili tramite una proprietà 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. Impedisci ad altro codice di dipendere troppo dal tipo Telemetry

Assicurati che l'istanza di Telemetry non possa essere creata al di fuori dello scope dell'auto.

3. Impedisci ad altro codice di dipendere dalla struct Speed

Assicurati che la struct Speed non possa essere usata al di fuori dello scope della classe RemoteControlCar.

4. Impedisci ad altro codice di dipendere dall'enum SpeedUnits

Assicurati che l'enum SpeedUnits non possa essere usato al di fuori dello scope della classe RemoteControlCar.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
C# Exercism

Vuoi iniziare Pulizia del radiocomando?

Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.