2008-12-22 24 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