我想实现泛型类的非泛型版本。像这样。
public class ServerSentEvent : ServerSentEvent<NoAdditionalClientInformation>
public class ServerSentEvent<ClientInfo> : IServerSentEvent
为了解决这个问题,我必须制作一个虚拟/空类 - NoAdditionalClientInformation。
没有空类还有其他方法吗?
最佳答案
通常你会反过来做:
public class ServerSentEvent : IServerSentEvent
{}
public class ServerSentEvent<ClientInfo> : ServerSentEvent
{}
这样,通用版本是非通用版本的更具体的子类型,允许您在其中放置更多信息,但在需要非通用类型的任何地方都使用通用类型。
如果你按照你的建议去做,你将需要指定一些默认类型;如果你想不出一个默认的,它可能是错误的顺序,但通常它可能取决于具体情况。
关于c# - 如何实现一个类的泛型和非泛型版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353066/