12

我想实现我的泛型类的非泛型版本。像这样。

public class ServerSentEvent : ServerSentEvent<NoAdditionalClientInformation>

public class ServerSentEvent<ClientInfo> : IServerSentEvent

为了解决这个问题,我必须创建一个虚拟/空类 - NoAdditionalClientInformation。

如果没有空类,还有另一种方法可以做到这一点吗?

4

1 回答 1

11

通常你会反过来做:

public class ServerSentEvent : IServerSentEvent
{}

public class ServerSentEvent<ClientInfo> : ServerSentEvent
{}

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

如果您按照建议进行操作,则需要指定一些默认类型;如果您想不出默认的,则可能是错误的顺序,但总的来说可能取决于具体情况。

于 2013-01-16T07:24:26.673 回答