2011-07-15 27 views
0

是否有一種方法可以動態指定泛型的用戶類?也就是說,說我有一個類層次結構是這樣的:C#允許動態列表的泛型類型

public interface IMyObject { } 

然後,我有一個這樣的類:

public class MyObject<?> : IMyObject { } 

我希望能夠使用對象是這樣的:

MyObject<object> firstOrder; 
MyObject<object, object> secondOrder; 
MyObject<object, object, object> thirdOrder; 
//And so on... 
//MyObject<object, object, object> , ..., object> nthOrder; 

我知道像Func <>,Action <>或其他代表,我不知道我曾經推動過這些能夠做什麼或者他們的參數列表可以如此膨脹。

有沒有辦法在C#中做到這一點?

謝謝...

回答

0

不,在C#中,您必須分別定義每個排列。如果你看看你引用的例子Action<T>Func<T>,你會注意到.NET框架提供了大量明確的過載(Action<T1, T2>,Action<T1, T2, T3>等)。但是沒有辦法讓這個開放式的;你必須自己定義每一個。

0

不,你不能有可變參數類型的參數。這可能很酷,但是現在這種語言是不可能的。至於FuncAction,每種類型參數都有手動聲明。 .NET對於這些代表來說並不是特別的東西。