Percursos
/
C#
C#
/
Exercícios
/
Limpeza do controlo remoto
Limpeza do controlo remoto

Limpeza do controlo remoto

Exercício de aprendizagem

Introdução

Tipos aninhados

Os tipos de C# podem ser definidos dentro do âmbito de uma classe ou de uma struct. O tipo que os envolve fornece uma espécie de espaço de nomes. O acesso ao tipo faz-se através do tipo que o envolve, com a sintaxe de ponto.

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

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

Podes definir níveis de acesso para os tipos internos.

Os membros privados do tipo exterior estão no âmbito dos membros do tipo interior, mas não o contrário.

Instruções

Uns programadores "outros" têm estado a trabalhar no projeto do carro telecomandado remote-control-competition. Chamaram-te para vires limpar o código.

1. Separa as responsabilidades entre o próprio carro e o sistema de telemetria

Refatora a classe RemoteControlCar para separares os métodos e as propriedades de telemetria, acedidos através de uma propriedade 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. Impede que outro código crie demasiadas dependências do tipo Telemetry

Garante que a instância Telemetry não pode ser criada fora do âmbito do carro.

3. Impede que outro código crie dependências da estrutura Speed

Garante que a estrutura Speed não pode ser usada fora do âmbito da classe RemoteControlCar.

4. Impede que outro código crie dependências da enumeração SpeedUnits

Garante que a enumeração SpeedUnits não pode ser usada fora do âmbito da classe RemoteControlCar.

Editar via GitHub A ligação abre numa nova janela ou separador
C# Exercism

Estás pronto para começar Limpeza do controlo remoto?

Inscreve-te no Exercism para aprenderes e dominares C# com 62 conceitos178 exercícios, e mentoria humana real, tudo grátis.