轨道
/
C#
C#
/
练习
/
遥控器清理
遥控器清理

遥控器清理

学习练习

简介

嵌套类型

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。现在请你来清理这些代码。

1. 分离汽车本身与遥测系统之间的关注点

重构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"

2. 防止其他代码对 Telemetry 类型产生过多依赖

确保Telemetry实例不能在汽车的作用域之外创建。

3. 防止其他代码依赖 Speed 结构体

确保Speed结构体不能在RemoteControlCar类的作用域之外使用。

4. 防止其他代码依赖 SpeedUnits 枚举

确保SpeedUnits枚举不能在RemoteControlCar类的作用域之外使用。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
C# Exercism

准备好开始 遥控器清理 了吗?

注册 Exercism,借助 62 个概念178 个练习 和真人导师指导,学习并掌握 C#,全部免费。