C#允许动态通用类型列表

时间:2011-07-15 21:40:12

标签: class list generics types

有没有办法允许动态指定带有泛型的用户类?也就是说,我有一个像这样的类层次结构:

 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&lt;&gt;,Action&lt;&gt;等内容或者其他代表,我不知道我曾经推动过这些能做的事情,或者他们的论点清单是否可以如此广泛。

有没有办法在C#中执行此操作?

...谢谢

2 个答案:

答案 0 :(得分:0)

不,在C#中你必须分别定义每个排列。如果你看一下你引用的例子Action<T>Func<T>,你会发现.NET框架提供了大量的显式重载(Action<T1, T2>Action<T1, T2, T3>,等等。)。但是没有办法让这个开放式的;你必须自己定义每一个。

答案 1 :(得分:0)

不,你不能拥有可变参数类型的参数。它可能很酷,但是现在的语言是不可能的。对于FuncAction,每个类型参数都有手动声明。对于那些代表来说,.NET并不特别。