2008-12-22 59 views
3

如何初始化包含类型可能不同的通用对象的列表?初始化未知类型的通用对象

例如,我有以下几点:

this.Wheres = new List<Where<>>(); 

如你所知,<>不是有效的语法。然而,有时传递给Where的类型将是一个字符串,有时它会是DateTime等。我尝试使用object作为初始化类型,但这也不起作用。

回答

10

嗯,你真的没有给予足够的情况下(这是什么SqlWhere?),但通常你会使用一个类型参数:如果你想有一个单一的集合包含多个不相关类型

public class Foo<T> 
{ 
    private IList<T> wheres; 

    public Foo() 
    { 
     wheres = new List<T>(); 
    } 
} 

的值,但是,您将不得不使用List<object>

1
this.Wheres = new List<Object>(); 
+0

这将添加(un)装箱和删除类型安全性。 – lacop 2008-12-22 16:42:05

+0

如何防止如果列表可以由不同的对象类型组成? – Sergio 2008-12-22 16:48:58