Los tipos de C# se pueden definir dentro del ámbito de una clase o una estructura. El tipo contenedor proporciona una especie de espacio de nombres. Se accede al tipo a través del tipo contenedor con la sintaxis de punto.
class Outer
{
public interface IInner {}
public enum EInner {}
public class CInner {}
public struct SInner {}
}
var outer = new Outer();
var inner = new Outer.CInner();
Puedes establecer niveles de acceso para los tipos internos.
Los miembros privados del tipo contenedor están en el ámbito de los miembros del tipo interno, pero no al revés.
Unos desarrolladores «otros» han estado trabajando en el proyecto del auto a control remoto remote-control-competition. Te han llamado para limpiar el código.
Refactoriza la clase RemoteControlCar para separar los métodos y las propiedades de telemetría, a los que se accede a través de una propiedad 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
Asegúrate de que la instancia de Telemetry no se pueda crear fuera del ámbito del auto.
Speed
Asegúrate de que la estructura Speed no se pueda usar fuera del ámbito de la clase RemoteControlCar.
SpeedUnits
Asegúrate de que la enumeración SpeedUnits no se pueda usar fuera del ámbito de la clase RemoteControlCar.
Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.