【发布时间】:2015-11-07 22:15:14
【问题描述】:
我正在翻译用 Java 编写的火星探测器问题的解决方案。我不确定如何处理找到 here 的 Direction 枚举类。
我不认为我可以在 C# 中做到这一点,因此我想问问是否有人可以建议如何做到这一点。
我正在考虑为从该接口继承的每个 Direction 创建一个 IDirection 接口和一个类。
【问题讨论】:
-
您可以使用受保护的构造函数创建一个名为
Direction的类。然后在Direction里面为每个方向创建子类,在Direction类中为每个方向创建静态字段。或者,使用 this 等库。 -
你能再解释一下或者给我一个代码示例吗?您是否还认为 Direction 类中的子类比从同一接口继承的 North、South、East、West 四个类更好。如果是,为什么?不好意思慢了,只是我还在学c#,想好好学。
-
你是否将枚举序列化为 XML、Json 或二进制?
-
子类化是不必要的,因为“左”意味着逆时针旋转
(x, y)90 度,这在数学上导致(-y, x)。同样“正确”的结果是(y, -x)。