inheritance其generics类型的通用类

可能重复:
为什么C#generics不能像C ++模板中那样从generics类型参数中派生出来?
在C#4.0中,是否可以从generics类型参数派生类?

我正在尝试创建一个inheritance自其generics类型的generics类(在1.Attempt中)。 看起来这是不可能的。 但在其他尝试中我必须施放物体。 该问题的任何设计解决方案?

// #1 Attempt public interface IFoo { } public class Generic : T { } public void play () { IFoo genfoo = new Generic (); } 

 // #2 Attempt. Castable solution public interface IAnything { } public interface IFoo2 : IAnything { } public class Generic2 : IAnything { } public void play2 () { IFoo2 genFoo = (IFoo2) new Generic2 (); } 

我没有看到你在Attempt#1中提供的代码的重点。 为什么要inheritance一个类,然后将该类传递给genericsparam。

尽管如此,支持通用inheritance,但它的完成方式不同,请检查此链接,它可能会给你一个想法: 通用inheritance

希望这可以帮助。

你在做什么打败了通用目标。

我怎么才能使用这样的东西:

 Generic intgen = new Generic(); // Impossible 

问题是generics定义了一种类型非特定的行为 。 您的generics是特定于类型的,因为它必须从中inheritance 。 Generic用于封装在混合两者时无法用inheritance表示的function – 我可以告诉你它不会是一个很好的组合

你不能这样做,因为generics定义中的T是一个类型定义,而不是一个真正的类。 我不确定你要完成什么,因为在我看来你的问题可以通过一个简单的inheritance来解决。 如果您尝试向您的类添加一些行为,那么您可以简单地使用generics并从中派生:

 public class Behavior { ... } public class DerivedBehavior : Behavior { ... }