Les types C# peuvent être définis dans la portée d'une classe ou d'un struct. Le type englobant fournit une sorte d'espace de noms. On accède au type via le type englobant, avec la syntaxe pointée.
class Outer
{
public interface IInner {}
public enum EInner {}
public class CInner {}
public struct SInner {}
}
var outer = new Outer();
var inner = new Outer.CInner();
Tu peux définir des niveaux d'accès pour les types imbriqués.
Les membres privés du type externe sont accessibles aux membres du type imbriqué, mais pas l'inverse.
D'« autres » développeurs ont travaillé sur le projet de voiture télécommandée remote-control-competition. On t'a appelé pour nettoyer le code.
Réécris la classe RemoteControlCar pour séparer les méthodes et les propriétés de télémétrie, accessibles via une propriété 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"
Telemetry
Fais en sorte que l'instance Telemetry ne puisse pas être créée en dehors de la portée de la voiture.
Speed
Fais en sorte que la structure Speed ne puisse pas être utilisée en dehors de la portée de la classe RemoteControlCar.
SpeedUnits
Fais en sorte que l'énumération SpeedUnits ne puisse pas être utilisée en dehors de la portée de la classe RemoteControlCar.
Inscris-toi sur Exercism pour apprendre et maîtriser C# avec 62 concepts178 exercices, et un vrai mentorat humain, le tout gratuitement.