2011-08-29 59 views
4

我使用下面的方法填充DropDownList控件。方法(.net,c#)中抽象類型作爲參數

protected void LoadDropDownList(DropDownList ddl, IEnumerable<A> source) 
{ 
    ddl.DataSource = source; 
    ddl.DataBind(); 
} 

我的問題是,我可以使該方法更抽象的,這樣它也可以採取B型IEnumerables?

+0

什麼是B型?另外,如果你可以提供整個類,這將是有幫助的 –

回答

8
protected void LoadDropDownList<T>(DropDownList ddl, IEnumerable<T> source) { 
    ... 

參見also

+1

堅持類型'T'派生自具有'DataSource'屬性的超類和一個名爲'DataBind()'的方法可能也是一個好主意。 –

+0

是的,我打算提一提。這不是必需的,但如果您要編寫可以將任何內容加載到列表中的代碼,那麼他們將不得不實現一些通用的基類。你可以在''''之後和'{'之前添加'where T:SomeBaseClass'。 –

+0

@查德:是的,約束會是件好事... – IAbstract

3
protected void LoadDropDownList(DropDownList ddl, IEnumerable source) { 
    ddl.DataSource = source; 
    ddl.DataBind(); 
} 
+0

換句話說,完全放棄強類型? :/ – BoltClock

+0

傑夫已經做了泛型版本。 – scottheckel