2009-02-01 150 views
4

愚蠢的問題。從.net中的現有基礎對象創建派生對象

比方說,我有一堆人的對象,其所有的字段都填充了數據,我有一個從person類派生的僱員類型,並且具有與作爲僱員相關的額外字段。如何獲取特定現有人員對象的員工對象?即如何將人員對象傳遞給員工?

+0

爲什麼答案是這樣嗎? 我不明白你爲什麼不能將人員轉交給員工。如果它是基類,那麼所有的基類字段都必須在那裏? 我在誤解一些顯而易見的事情,爲什麼不能這樣做? – tim 2009-07-23 12:13:36

回答

5

的人如果是作爲員工創建的,那麼只投:

Person person = new Employee(); // for some reason 
... 
Employee emp = (Employee)person; 

如果對方只是一個人:你不能;你可以有員工封裝的人 - 或者你可以副本領域:

class Employee { // encapsulation 
    private readonly Person person; 
    public Person {get {return person;}} 
    public Employee(Person person) {this.person = person;} 
    public Employee() : this(new Person()) {} 
} 

class Employee : Person { // inheritance 
    public Employee(Person person) : base(person) {} 
    public Employee() {} 
} 
class Person { 
    public Person(Person template) { 
     this.Name = template.Name; // etc 
    } 
    public Person() {} 
} 
+0

我以爲這麼多;感謝你的回答。 – 2009-02-01 15:11:10

相關問題