我在 C# 控制台应用程序中有几个类。
public class Cars:List<Car>
{}
和:
public class Drivers:List<Driver>
{}
目标是始终以相同的方式渲染控制台输出,无论 cars
或 drivers
是否被解析为渲染方法。所以参数的类型是object
。当然,属性可能有不同的名称。
输出应如下所示:
// Cars
Brand HP Topspeed
VW 100 200
VW 90 150
或
// Drivers
Name Age Sex
Pit 18 m
Jane 20 f
所以我需要读取属性名称以使其成为列标题,然后读取每个对象的值。我已经搜索了一段时间,总是出现这样的事情:
public static void RenderOutput(object obj)
{
foreach (var prop in obj.GetType().GetProperties())
{
}
}
虽然在运行时鼠标悬停 obj
可以很好地显示所有所需的对象和属性(品牌、HP、VW、100,...),但我无法设法从 中挤出值>prop
item car
by car
或 driver
by driver
。
有什么建议吗? 谢谢 金博2015
最佳答案
我建议转到interface
路线,有一个具有方法RenderOutput
的接口(interface)。汽车和驾驶员都将实现该接口(interface),并提供自己的方法实现。这将更合适,因为汽车方法不知道驾驶员或签证。在调用方法时,您不传递对象,而是调用实例方法。
关于C#:将不同的类解析为对象并以相同的方式显示属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32547588/