C# List容器的使用问题
求各位大神详细解答:
我现在定义了很多个图形的类,比如Triangle,Rectangular,Circle等,这些类有坐标,大小等的属性,然后又定义了一个List<object>的容器,把不同类的对象存到容器里面,现在如何遍历这个list容器来获取存在容器中的对象的及其属性呢?
在线跪求解答!!!!!!!!!求指导,先谢谢了。
[解决办法]
你不应该用List<object>来存这些对象,而应该抽象出Triangle,Rectangular,Circle这几个类的基类或接口来,把三个类的坐标,大小等公共属性放到这个基类或接口中,然后用List<基类>或List<接口>来存储
[解决办法]
那就只能用反射了。嫌麻烦的话,试试dynamic。
[解决办法]
Triangle tri = new Triangle { Width = 3, Length = 4 };
Rectangular rec = new Rectangular { X = 1, Y = 3 };
Circle cir = new Circle { Radius = 4 };
List<object> list = new List<object>();//这不是List发挥作用的地方,如果非要这样还是使用ArrayList
list.Add(tri);
list.Add(rec);
list.Add(cir);
foreach (object item in list)
{
if (item is Triangle)
{
int width = ((Triangle)item).Width;
int length = ((Triangle)item).Length;
}
else if (item is Rectangular)
{
int x = ((Rectangular)item).X;
int y = ((Rectangular)item).Y;
}
else if (item is Circle)
{
int radius = ((Circle)item).Radius;
}
}