2014-02-15 103 views
16

我在我的MVC項目中有一個模型類,像這樣。如果一個分類繼承自一個類,那麼所有其他具有相同名稱的分類也應該繼承相同的基類?

public partial class Manager : Employee 
{ 
    public string Name {get;set;} 
    public int Age {get;set;} 
} 

而這個類我在App_Code文件夾中的同一個項目中。現在我想知道我的這個類是否也需要從Employee類繼承而來?

public partial class Manager 
{ 
    public void SaveEmployee(); 
} 

我,因爲我的客戶要我將所有的文件夾App_Code這是處理數據庫的方法來做到這一點。

而且這兩個類都共享相同的名稱空間。

回答

18

這是在多個聲明中定義的單個類,而不是兩個不同的類。你只需要在一個聲明中定義的繼承模型,如:

public class Foo { } 

//Bar extends Foo 
public partial class Bar : Foo { } 

public partial class Bar { } 

但是,如果你嘗試下面,你會產生「‘酒吧’的分部聲明編譯器錯誤不能指定不同的基類「:

public class Foo { } 

public partial class Bar : Foo { } 

public partial class Bar : object { } 
+0

你是對的普雷斯頓,但現在我有另一個問題。看起來我無法從Model擴展到App_Code文件夾的部分類現在,當我嘗試訪問模型類的屬性時出現錯誤:「編譯器錯誤CS1061-當您嘗試調用方法或訪問類時出現此錯誤不存在的成員「。但是,如果我把這兩個部族都放在模型中,它就可以正常工作。 –

+0

@PrestonGuillot如果你繼承的基地有一個構造函數呢?我似乎無法創建我的部分類而無需從兩者調用基礎構造函數,即使我希望我只需要從一個類構造函數中調用基類構造函數。 – Chucky

+0

@Chucky雖然沒有看到你的代碼,但我並不清楚你確切的問題 - 聽起來像是值得開一個新的問題。從概念上講,我不確定「不得不從兩者調用基礎構造函數」的含義 - 如果要通過提供新的構造函數來擴展類,並且要確保基類的所有類都具有C#中的構造函數,構造函數被調用,你會在你的新類的構造函數中做到這一點,但你只需要在部分類的單個文件中構造函數定義。 –

1

是的,部分類的其他部分仍然是同一類,所以它從Employee繼承。

相關問題