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.
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.
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.
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.
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.