I tipi di C# possono essere definiti all'interno dello scope di una classe o di uno struct. Il tipo che li contiene fornisce una sorta di namespace. Si accede al tipo tramite il tipo che lo contiene, con la sintassi del punto.
class Outer
{
public interface IInner {}
public enum EInner {}
public class CInner {}
public struct SInner {}
}
var outer = new Outer();
var inner = new Outer.CInner();
Puoi impostare i livelli di accesso per i tipi annidati.
I membri privati del tipo esterno sono nello scope dei membri del tipo annidato, ma non viceversa.
Alcuni «altri» sviluppatori hanno lavorato al progetto dell'auto radiocomandata remote-control-competition. Ti hanno chiamato per ripulire il codice.
Riorganizza la classe RemoteControlCar in modo da separare i metodi e le proprietà di telemetria, accessibili tramite una proprietà 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"
Assicurati che l'istanza di Telemetry non possa essere creata al di fuori dello scope dell'auto.
Assicurati che la struct Speed non possa essere usata al di fuori dello scope della classe RemoteControlCar.
Assicurati che l'enum SpeedUnits non possa essere usato al di fuori dello scope della classe RemoteControlCar.
Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.