2010-07-16 5 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

첫째, 나는 PagerBuilder 클래스의 PagerLink 외부 이동 것이고 (물론 새 파일) 별도로 정의한다.

두 번째로 가상 서브 클래스 PagerLink (사실 유효하지 않습니다.)이 필요하지 않습니다. 이 코드를 추상화하려면 abstract 키워드를 사용하십시오. 그러나 PagerLink의 구체적인 구현을 정의 할 때까지이 코드는 컴파일되지 않습니다. 을 상속하는 데 abstract을 사용할 필요는 없습니다. 이 :.

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;} 
} 
당신은 당신의 생성자에서 읽기 전용 문자열을 설정하려는
관련 문제