如何实现类的泛型和非泛型版本

本文关键字:泛型 版本 何实现 实现 | 更新日期: 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
{}

这样,泛型版本是非泛型版本的更指定的子类型,允许您在其中放入更多信息,但在期望使用非泛型类型的地方使用泛型类型。

如果你像你建议的那样做,你需要指定一些默认类型;如果您想不出默认的顺序,则可能是错误的顺序,但通常情况下,这可能取决于情况。