我想实现我的泛型类的非泛型版本。像这样。
public class ServerSentEvent : ServerSentEvent<NoAdditionalClientInformation>
public class ServerSentEvent<ClientInfo> : IServerSentEvent
要解决这个问题,我必须制作一个虚拟/空类--NoAdditionalClientInformation。
在没有空类的情况下还有另一种方法吗?
答案 0 :(得分:7)
通常你只是反过来这样做:
public class ServerSentEvent : IServerSentEvent
{}
public class ServerSentEvent<ClientInfo> : ServerSentEvent
{}
这样,通用版本是非通用版本的更明确的子类型,允许您在其中放入更多信息,但是如果需要非泛型类型,则使用泛型类型。
如果按照建议的方式进行,则需要指定一些默认类型;如果你不能想到一个默认的订单,它可能是错误的订单,但一般来说可能取决于具体情况。