我正在完成一个大学实验室,而且我很少被讲师要求我做的事情,我们刚开始学习C#,实验室要我们写一个控制台应用程序,使用多态性,有4个类:顶点,形状,线,圆和测试。
我有我所有的课程,我的大多数方法都很好,但是我无法弄清楚他希望我们在Translate方法中做什么,下面是实验表上的问题:
在Shape中实现2个方法,一个用于返回Shape的详细信息 (ToString())和一个允许在2D空间中转换形状的方法 (翻译(..))。要翻译的金额应作为a translate方法的参数(作为Vertex对象的引用) 即物体相对于X的平移量 和Y轴)。
我很确定他没有找到像这里给出的解决方案那么复杂的任何事情:How to Draw Box,Rectangle in a C# Console application
任何建议表示赞赏。
修改
到目前为止,这是我的代码:
public override void Translate(ref Vertex v)
{
}
该方法在Shape类中实现为虚方法,并在Line和Circle类中重写。
答案 0 :(得分:4)
在此背景下的翻译意味着" shift" (您将在GUI框架中看到这个概念,例如TranslateTransform
)
例如,以原点为中心的Circle
向上翻译2个单位,向右翻译为以(2,2)为中心的圆圈。
由于翻译需要两条信息(左右和上下多少),您可以重复使用Vertex
对象(可能会将这两条信息存储为X
和Y
属性)传递翻译参数,如下所示:
public virtual void Translate(Vertex translation)
{
//Implementation left to you
}
每个类都会覆盖此方法以进行自己的翻译。请注意,此处无需实际传递按引用(如您的代码所示),对象始终传递作为引用。< / p>