我的任务很简单:我必须创建一个动态数组(这意味着它的大小可以在所有运行时间内更改)并使用不同类型的对象填充它(取决于用户输入,也在运行时).而且,我应该可以访问数组中每个对象的字段(和/或方法).显然,每种类型的字段都不同.简化结构:
public class Point {}
public class RightTriangle:Point { public double sideA, sideB; }
public class Circle:Point { public double radius; }
public class Cone:Circle { public double radius, height; }
Run Code Online (Sandbox Code Playgroud)
所以,你看:所有类都继承了一个基类.我知道,这些结构不合逻辑,但这不是我的选择.所以,我想要这个代码工作:
RightTriangle rt1 = new RightTriangle();
Cone cn1 = new Cone();
List<Point> objs = new List<Point>();
objs.Add(rt1);
sideA_tb.Text = objs[0].sideA.ToString();
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.编译器说,没有sideA在Point.但是,这也不起作用:
public class Point { public double sideA, sideB, radius, height; }
public class RightTriangle:Point { public new double sideA, sideB; }
public class Circle:Point …Run Code Online (Sandbox Code Playgroud)