Rutas
/
C#
C#
/
Ejercicios
/
Rojo contra Azul: al estilo Darwin
Rojo contra Azul: al estilo Darwin

Rojo contra Azul: al estilo Darwin

Ejercicio de aprendizaje

Introducción

Espacios de nombres

Los espacios de nombres son una forma de agrupar código relacionado y evitar conflictos de nombres, y por lo general están presentes en todas las bases de código salvo las más triviales.

La sintaxis es la siguiente:

namespace MyNameSpace
{
    public class MyClass {}

    public class OtherClass {}
}

Se hace referencia a los tipos incluidos en espacios de nombres, fuera del ámbito del espacio de nombres, anteponiendo la sintaxis de punto al nombre del tipo. Como alternativa, y más habitualmente, puedes colocar una directiva using al principio del archivo (o dentro de un espacio de nombres) y el tipo se puede usar sin el prefijo. Dentro del mismo espacio de nombres no es necesario calificar los nombres de tipo.

namespace MySpace
{
    public class MyClass {}

    public class Foo
    {
        public void Bar()
        {
            var baz = new MyClass();
        }
    }
}

public class Qux
{
    public void Box()
    {
        var nux = new MySpace.MyClass();
    }
}

namespace OtherSpace
{
    using MySpace;

    public class Tix
    {
        public void Jeg()
        {
            var lor = new MyClass();
        }
    }
}

Puedes crear un alias de un espacio de nombres con la sintaxis using MyAlias = MySpace; y luego usar el alias en cualquier lugar donde se pudiera usar el espacio de nombres.

Instrucciones

La dirección está empezando a aplicar principios darwinianos al proyecto Remote Control Car remote-control-competition. Los desarrolladores se han dividido en dos equipos, Red y Blue, y tienen la tarea de mejorar el diseño de forma independiente entre sí. No necesitan preocuparse por las decisiones de diseño del otro equipo.

Se te ha pedido que eches un vistazo al código y veas cuál es la mejor forma de combinar los esfuerzos de los dos equipos con fines de prueba.

1. Encuentra una forma más adecuada de aislar el código de los dos equipos

Por favor, usa namespaces para expresar mejor la intención del código.

Actualmente, tipos importantes como Motor y Telemetry, por no hablar del propio RemoteControlCar, están anidados dentro de una clase estática contenedora, <Color>RemoteControlCarTeam. El único propósito de la clase contenedora es permitir que tipos con el mismo nombre coexistan en el programa. Eso se expresa mejor usando un namespace. Verás en el siguiente ejercicio que, para estos fines, un namespace tiene ventajas sobre una static class.

2. Simplifica el sistema de nombres

Aunque la dirección insiste en que los equipos deben llamarse RedRemoteControlCarTeam y BlueRemoteControlCarTeam en las definiciones, los nombres resultan bastante engorrosos a la hora de referirse a los equipos. Encuentra la forma de usar los identificadores más cortos Red y Blue al construir los coches.

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

¿Listo para empezar Rojo contra Azul: al estilo Darwin?

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