如何实现类的泛型和非泛型版本
本文关键字:泛型 版本 何实现 实现 | 更新日期: 2023-09-27 17:53:57
我想实现我的泛型类的非泛型版本。这样的。
public class ServerSentEvent : ServerSentEvent<NoAdditionalClientInformation>
public class ServerSentEvent<ClientInfo> : IServerSentEvent
为了解决这个问题,我必须创建一个虚拟/空类- NoAdditionalClientInformation。
有没有另一种方法可以做到这一点,而不需要空类?
通常情况下你只需要反过来做:
public class ServerSentEvent : IServerSentEvent
{}
public class ServerSentEvent<ClientInfo> : ServerSentEvent
{}
这样,泛型版本是非泛型版本的更指定的子类型,允许您在其中放入更多信息,但在期望使用非泛型类型的地方使用泛型类型。
如果你像你建议的那样做,你需要指定一些默认类型;如果您想不出默认的顺序,则可能是错误的顺序,但通常情况下,这可能取决于情况。