Los tipos de C# se pueden definir dentro del scope de un class o struct. El tipo contenedor proporciona una especie de espacio de nombres. El acceso al tipo se realiza 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 scope de los miembros del tipo interno, pero no al revés.
Algunos desarrolladores «otros» han estado trabajando en el proyecto del coche teledirigido remote-control-competition. Te han llamado para limpiar el código.
Refactoriza la clase RemoteControlCar para separar los métodos y propiedades de telemetría a los que se accede mediante 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"
Asegúrate de que la instancia de Telemetry no se pueda crear fuera del scope del coche.
Asegúrate de que la estructura Speed no se pueda usar fuera del scope de la clase RemoteControlCar.
Asegúrate de que la enumeración SpeedUnits no se pueda usar fuera del scope de la clase RemoteControlCar.
Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.