Track
/
C#
C#
/
Esercizi
/
Rosso contro blu: stile Darwin
Rosso contro blu: stile Darwin

Rosso contro blu: stile Darwin

Esercizio di apprendimento

Introduzione

Spazi dei nomi

Gli spazi dei nomi sono un modo per raggruppare codice correlato ed evitare conflitti di nomi, e in genere sono presenti in tutte le basi di codice tranne le più banali.

La sintassi è la seguente:

namespace MyNameSpace
{
    public class MyClass {}

    public class OtherClass {}
}

I tipi racchiusi negli spazi dei nomi sono indicati all'esterno dello scope dello spazio dei nomi prefissando il nome del tipo con la sintassi del punto. In alternativa, e più comunemente, puoi inserire una direttiva using all'inizio del file (o all'interno di uno spazio dei nomi) e il tipo può essere usato senza il prefisso. All'interno dello stesso spazio dei nomi non è necessario qualificare i nomi dei tipi.

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();
        }
    }
}

Puoi assegnare un alias a uno spazio dei nomi con la sintassi using MyAlias = MySpace; e poi usare l'alias ovunque si possa usare lo spazio dei nomi.

Istruzioni

La dirigenza ha iniziato ad applicare i principi darwiniani al progetto Remote Control Car remote-control-competition. Gli sviluppatori sono stati divisi in due team, Red e Blue, e hanno il compito di migliorare il design in modo indipendente l'uno dall'altro. Non devono preoccuparsi delle decisioni di design dell'altro team.

Ti è stato chiesto di dare un'occhiata al codice e di capire come combinare al meglio i due lavori per poterli testare.

1. Trova un modo più adatto per isolare il codice dei due team

Usa i namespaces per esprimere meglio l'intenzione del codice.

Attualmente, tipi importanti come Motor e Telemetry, per non parlare di RemoteControlCar stesso, sono annidati all'interno di una classe statica che li racchiude, <Color>RemoteControlCarTeam. L'unico scopo della classe che li racchiude è permettere a tipi con lo stesso nome di coesistere nel programma. Lo si esprime meglio usando un namespace. Nell'esercizio successivo vedrai che, per questi scopi, un namespace ha dei vantaggi rispetto a una static class.

2. Semplifica il sistema di denominazione

Anche se la dirigenza insiste sul fatto che nelle definizioni i team debbano chiamarsi RedRemoteControlCarTeam e BlueRemoteControlCarTeam, questi nomi sono piuttosto scomodi quando si fa riferimento ai team. Trova un modo per usare gli identificatori più brevi Red e Blue quando costruisci le auto.

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

Vuoi iniziare Rosso contro blu: stile Darwin?

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