C# 类型可以定义在类或结构体的作用域内。外层类型提供了一种命名空间。访问该类型需要通过外层类型,并使用点语法。
class Outer
{
public interface IInner {}
public enum EInner {}
public class CInner {}
public struct SInner {}
}
var outer = new Outer();
var inner = new Outer.CInner();
你可以为内部类型设置访问级别。
外层类型的私有成员位于内部类型成员的作用域内,反之则不然。
一些“其他”开发者一直在开发遥控车项目的练习csharp/remote-control-competition。现在请你来清理这些代码。
重构RemoteControlCar类,把遥测方法和属性分离出去,改为通过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实例不能在汽车的作用域之外创建。
确保Speed结构体不能在RemoteControlCar类的作用域之外使用。
确保SpeedUnits枚举不能在RemoteControlCar类的作用域之外使用。