从对象中提取列表并使用其方法

时间:2015-08-01 14:58:12

标签: c#

我试图获取列表中的函数,而获取列表的变量是一个对象。 我试图为函数创建一个通用选项,不需要为特定列表设置函数。

class Program
{
    static void Main(string[] args)
    {
        Car Ford = new Car();
        Car Toyota = new Car();
        Motorcycle Kawasaki = new Motorcycle();
        Bike Zebra = new Bike();
        List<Vehicle> Garage = new List<Vehicle>();
        Garage.Add(Ford);
        Garage.Add(Toyota);
        Garage.Add(Kawasaki);
        Garage.Add(Zebra);
        Class1 c1 = new Class1(Garage);
    }
 }
class Class1
{
    public Class1(object obj)
    {
       //cannot find the way to extract the list and its method 
    }

}

我可以在obj列表中看到但是我无法使用它(没有可能来循环这些类而不使用它们的公共方法。 我知道使用反射有一些可能性,但我只管理一个类而不是列表。 这里有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以将Generic用于此

class Program
{
    static void Main(string[] args)
    {
        Car Ford = new Car();
        Car Toyota = new Car();
        Motorcycle Kawasaki = new Motorcycle();
        Bike Zebra = new Bike();
        List<Vehicle> Garage = new List<Vehicle>();
        Garage.Add(Ford);
        Garage.Add(Toyota);
        Garage.Add(Kawasaki);
        Garage.Add(Zebra);
        Class1<Vehicle> c1 = new Class1<Vehicle>(Garage);
    }        
}

 class Bike : Vehicle
{
}

 class Car : Vehicle
{
}

 class Motorcycle : Vehicle
{
}

 class Vehicle
{
}

class Class1<T> 
{
    public Class1(List<T> obj)
    {
        foreach (var item in obj)
        {

        }            
    }
}