2012-03-18 26 views
0

如果我有以下的抽象類:C#抽象類呼叫基地,仿製藥

public abstract class Page<T> where T : class 
{ 
    public Func<T, object> SortBy { get; private set; } 

    public Page(Func<T, object> sortBy) 
    { 
     this.SortBy = sortBy; 
    } 
} 

我怎樣才能調用從繼承類的基類的構造?我想要做這樣的事情:

public class ProductGridPage : Page<ProductGrid> 
{ 
    public ProductGridPage() : base<ProductGrid>(pg => pg.Title) 
    { 

    } 
} 

但是base<ProductGrid>(pg => pg.Title)是無效的,不會編譯。

回答

3
public abstract class Page<T> where T : class 
{ 
    public Func<T, object> SortBy { get; private set; } 

    public Page(Func<T, object> sortBy) 
    { 
     this.SortBy = sortBy; 
    } 
} 

public class ProductGridPage : Page<ProductGrid> 
{ 
    public ProductGridPage() : base(pg => pg.Title) 
    { 

    } 
} 
public class ProductGrid 
{ 
    public string Title; 
} 
+0

大聲笑 - 這麼簡單謝謝 - 我以爲我試過這個,但它改變了這兩個類的東西,可能沒有在基類中的構造函數正確,感謝您的幫助;-) – Rob 2012-03-18 03:47:45