将通用列表传递给方法

时间:2017-01-27 02:42:52

标签: c#-4.0

我正在尝试创建一个接受任何类型列表的方法,因此我不必创建一个方法来处理每种类型的列表对象。它说我的l对象变量无效。

我的代码

static void Main(string[] args)
        {
           List <Person> l;
            testList(l);
        }

        public void testList(List<object> x)
        {

        }

2 个答案:

答案 0 :(得分:0)

您还需要使方法通用(通过向方法添加泛型参数)。这应该有效,但请务必分配您的列表(例如List<Person l = new List<Person>();)。

public void testList<T>(List<T> X)
    {
       // Whatever you want to do with your list.
    }

另外,只是提醒一下,看起来你是从静态方法调用它,确保在方法上也添加静态。

希望它有所帮助!

答案 1 :(得分:0)

        static void Main(string[] args)
        {
           List <Person> list1;
           testList<Person>(list1);

           List <OtherClassObj> list2;
           testList<OtherClassObj>(list2)
        }

        //Here T is type of object
        public void testList<T>(List<T> x)
        {
            if (typeof(T) == typeof(Person))
                //Prosess Person's List
        }