2014-07-14 172 views
0

可以創建具有多個不知道類型的類嗎? 例如: 考慮我有:具有多種類型的通用類

class MyClass <Type1, Type2, Type3, TResponse > 
{ 

public TResponse Run() 
{ 
    //operation on Type1, Type2, Type3 
} 


} 

,我的問題是,如果這是可能通過一些怎樣的類型列表中,然後在循環使用它們?然後想知道如何調用它。

+1

Pass * what *類型列表?目前你的問題還不清楚。如果你能展示你期望如何調用該方法,以及你期望得到的結果如何,這將會有所幫助。 –

+0

如果你有幾個不同類型的類,實現相同的接口,你能夠實現你想要做的事情嗎? – Mez

+0

對於.Net 4或更新的版本,您還可以對「未知」類型使用'dynamic'關鍵字。這會在你的上下文中使用嗎(而不是泛型)? –

回答

1

是的,您可以定義一個泛型類與多種類型,下面的代碼編譯。但是爲了執行這些類型的操作,您通常需要在類型上定義constraints

public class MyClass <Type1, Type2, Type3, TResponse> 
{ 
    public TResponse Run() 
    { 
     return default(TResponse); 
    } 
} 

然而,泛型類型是明確指定的,AFAIK沒有辦法指定類的泛型類型列表。

-1

如果所有類都使用接口或抽象類來公開相同的功能,則這是可能的。一旦我們有了基類型,我們可以創建具有多個類型參數的泛型類。在泛型類中,我們可以調用任何公開的功能。