有没有办法允许动态指定带有泛型的用户类?也就是说,我有一个像这样的类层次结构:
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#中执行此操作?
...谢谢
答案 0 :(得分:0)
不,在C#中你必须分别定义每个排列。如果你看一下你引用的例子Action<T>
和Func<T>
,你会发现.NET框架提供了大量的显式重载(Action<T1, T2>
,Action<T1, T2, T3>
,等等。)。但是没有办法让这个开放式的;你必须自己定义每一个。
答案 1 :(得分:0)
不,你不能拥有可变参数类型的参数。它可能很酷,但是现在的语言是不可能的。对于Func
和Action
,每个类型参数都有手动声明。对于那些代表来说,.NET并不特别。