C#-Typen kannst du innerhalb des Gültigkeitsbereichs einer Klasse oder eines Structs definieren. Der umschließende Typ fungiert dabei als eine Art Namespace. Auf den Typ greifst du über den umschließenden Typ und die Punktsyntax zu.
class Outer
{
public interface IInner {}
public enum EInner {}
public class CInner {}
public struct SInner {}
}
var outer = new Outer();
var inner = new Outer.CInner();
Für innere Typen kannst du Zugriffsebenen festlegen.
Private Member des äußeren Typs sind für Member des inneren Typs im Gültigkeitsbereich, umgekehrt gilt das nicht.
Einige „andere“ Entwickler haben am Projekt des ferngesteuerten Autos remote-control-competition gearbeitet. Du wurdest gerufen, um den Code aufzuräumen.
Refaktoriere die Klasse RemoteControlCar so, dass die Telemetriemethoden und -eigenschaften ausgelagert und über eine Telemetry-Eigenschaft aufgerufen werden.
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"
Stelle sicher, dass die Telemetry-Instanz nicht außerhalb des Gültigkeitsbereichs des Autos erstellt werden kann.
Stelle sicher, dass das Speed-Struct nicht außerhalb des Gültigkeitsbereichs der Klasse RemoteControlCar verwendet werden kann.
Stelle sicher, dass das SpeedUnits-Enum nicht außerhalb des Gültigkeitsbereichs der Klasse RemoteControlCar verwendet werden kann.
Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.