【问题标题】:C# allowing dynamic list of Generic TypesC# 允许动态的泛型类型列表
【发布时间】:2011-07-15 21:40:11
【问题描述】:

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

 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# 中做到这一点?

谢谢...

【问题讨论】:

    标签: class list generics types


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      不,你不能有可变参数类型。这可能很酷,但就目前的语言而言,这是不可能的。至于FuncAction,每个类型参数的数量都有手动声明。 .NET 对那些代表来说并不是什么特别的东西。

      【讨论】:

        猜你喜欢
        • 2012-10-14
        • 1970-01-01
        • 1970-01-01
        • 2010-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多