Kurzusok
/
C#
C#
/
Feladatok
/
Piros kontra kék: darwini stílusban
Piros kontra kék: darwini stílusban

Piros kontra kék: darwini stílusban

Tanulófeladat

Bevezetés

Névterek

A névterekkel összetartozó kódot csoportosíthatsz, és elkerülheted a névütközéseket. A legegyszerűbb kódbázisok kivételével gyakorlatilag mindenhol megtalálhatók.

A szintaxis a következő:

namespace MyNameSpace
{
    public class MyClass {}

    public class OtherClass {}
}

A névterekbe zárt típusokra a névtér scope-ján kívül úgy hivatkozunk, hogy a típusnév elé pontszintaxissal odaírjuk a névtér nevét. Másik, gyakrabban használt megoldás, hogy a fájl elejére (vagy egy névtérbe) beírsz egy using direktívát, és akkor a típus az előtag nélkül is használható. Ugyanazon a névtéren belül nem kell minősítened a típusneveket.

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

Egy névtérnek álnevet is adhatsz a using MyAlias = MySpace; szintaxissal, majd az álnevet bárhol használhatod, ahol magát a névteret is használhatnád.

Utasítások

A vezetőség kezdi darwini elveket alkalmazni a Távirányítós autó projektre remote-control-competition. A fejlesztőket két csapatra osztották: Red és Blue. Azzal a feladattal bízták meg őket, hogy egymástól függetlenül javítsák a tervet. Nem kell foglalkozniuk a másik csapat tervezési döntéseivel.

Felkértek, hogy nézd meg a kódot, és találd meg, hogyan lehet a két csapat munkáját a legjobban egyesíteni tesztelési célokra.

1. Találj megfelelőbb módot a két csapat kódjának elkülönítésére

Kérlek, a namespaces használatával fejezd ki jobban a kód szándékát.

Jelenleg a fontos típusok, mint például a Motor és a Telemetry, nem is beszélve magáról a RemoteControlCar-ról, egy bezáró statikus osztályba, a <Color>RemoteControlCarTeam-be vannak ágyazva. A bezáró osztály egyetlen célja, hogy lehetővé tegye az azonos nevű típusok együttélését a programban. Ez jobban kifejezhető egy névtér használatával. A következő feladatban látni fogod, hogy ezekre a célokra a namespace előnyösebb a static class-nál.

2. Egyszerűsítsd az elnevezési rendszert

Bár a vezetőség ragaszkodik hozzá, hogy a csapatokat a definíciókban RedRemoteControlCarTeam-nek és BlueRemoteControlCarTeam-nek hívják, a nevek meglehetősen nehézkesek, amikor a csapatokra hivatkozunk. Találj módot arra, hogy a rövidebb Red és Blue azonosítókat használd az autók építésekor.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C# Exercism

Készen állsz elkezdeni a(z) Piros kontra kék: darwini stílusban feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.