2010-07-16 71 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 2010-07-16 00:21:18

+0

編譯器說,這是我的虛擬聲明 – ONYX 2010-07-16 00:23:07

回答

3

首先,我會提出PagerLinkPagerBuilder類,並分別將其定義(在一個新的文件以及)。

其次,你不需要虛擬子類PagerLink(事實上它甚至不是有效的)。如果您希望它是抽象的,請改爲使用abstract關鍵字,但是此代碼不會編譯(在PagerLink link = new PagerLink()之前,直到您定義了PagerLink的具體實現,不過您不需要使用abstract繼承PagerLink,只需要這樣的:

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

呀?我最終做了你所說的,我創建了一個新的類,我試圖從MVC腳本實現這個代碼到.net 2.0 – ONYX 2010-07-16 02:07:50

1

你想從你的類定義中刪除virtual

private class PagerLink 
{ 
    public string Title { get; set;} 
    public int PageNo { get; set; } 
    public string Class { get;set;} 
} 
相關問題