您好我无法创建一个子类的新对象我认为这就是您所说的虚拟不允许我必须采取的措施来解决这个问题,这是我的代码。
public class PagerBuilder {
private virtual class PagerLink
{
public string Title { get; set;}
public int PageNo { get; set; }
public string Class { get;set;}
}
private readonly List<PagerLink> _pagerLinks = new List<PagerLink>();
private readonly string _urlTemplate;
public PagerBuilder(string urlTemplate)
{
_urlTemplate = urlTemplate;
}
public string PagerClass { get;set;}
public void AddPage(string title, int pageNo)
{
AddPage(title, pageNo, string.Empty);
}
public void AddPage(string title, int pageNo, string itemClass)
{
PagerLink link = new PagerLink();
}
}
答案 0 :(得分:3)
首先,我会将PagerLink
移到PagerBuilder
类之外并单独定义(在新文件中)。
其次,你不需要虚拟到子类PagerLink
(实际上它甚至都不是有效的)。如果您希望它是抽象的,请使用abstract
关键字,但在您定义PagerLink link = new PagerLink()
的具体实现之前,此代码将无法编译(PagerLink
。您不需要但是,使用abstract
继承PagerLink
。只需这样做:
public class CustomPagerLink: PagerLink
{
//Subclass implementation
}
答案 1 :(得分:1)
您想从类定义中删除virtual
。
private class PagerLink
{
public string Title { get; set;}
public int PageNo { get; set; }
public string Class { get;set;}
}