2010-07-16 4 views
1

Привет, я не могу создать новый объект, являющийся подклассом. Я думаю, что это то, что вы называете его, говоря, что виртуальное не разрешено, что я должен сделать, чтобы исправить это здесь. мой код.класс не позволит мне создать новый объект

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

Вы пытаетесь установить только для чтения строки в конструкторе – Jeroen

+0

компилятор говорит, что это моя виртуальная декларация – ONYX

ответ

3

Во-первых, я хотел бы перейти PagerLink за пределами PagerBuilder класса и определить его отдельно (в новом файле, а).

Во-вторых, вам не нужен виртуальный подкласс PagerLink (на самом деле это даже не актуально). Если вы хотите, чтобы он был абстрактным, используйте вместо этого ключевое слово abstract, но этот код не будет компилироваться (в PagerLink link = new PagerLink(), пока вы не определите конкретную реализацию PagerLink. Вам не нужно использовать abstract для наследования от PagerLink. это:

public class CustomPagerLink: PagerLink 
{ 
    //Subclass implementation 
} 
+0

Да.?Я закончил делать то, что вы сказали, и я создал новый класс за пределами того, что я пытался реализовать этот код из сценария MVC в .net 2.0 – ONYX

1

Вы хотите удалить virtual из вашего определения класса

private class PagerLink 
{ 
    public string Title { get; set;} 
    public int PageNo { get; set; } 
    public string Class { get;set;} 
} 
Смежные вопросы