【发布时间】:2023-09-08 10:40:01
【问题描述】:
在 MVC 项目中,我有以下类:
public abstract class Browse<T> where T : Browse<T>
public abstract class SqlBrowse<T> : Browse<T> where T : Browse<T>
public class SqlBrowseBoys : SqlBrowse<SqlBrowseBoys>
public class SqlBrowseGirls : SqlBrowse<SqlBrowseGirls>
和下面的视图模型
public class BrowseViewModel
{
public [INTERFACE] People { get; set; }
}
但我需要在标记为 [INTERFACE] 的位置有一个接口/类,它可以同时使用 SqlBrowseBoys 和 SqlBrowseGirls,因此我可以在多个地方使用 BrowseViewModel。
如果有人能告诉我我的大脑现在是如何打结的,我会很高兴的。我怀疑这将需要对课程进行一些更改,这很好,但我目前不知道那会是什么。
非常感谢。
【问题讨论】:
-
Eric Lippert 发布了关于奇怪重复出现的模板模式 here,这应该会有所帮助。
-
是的,这就是我在搜索上述代码后了解到模式的名称及其相关信息的地方,但这对我当前的问题没有帮助。不过还是谢谢。
标签: c# generics inheritance polymorphism