4
愚蠢的問題。從.net中的現有基礎對象創建派生對象
比方說,我有一堆人的對象,其所有的字段都填充了數據,我有一個從person類派生的僱員類型,並且具有與作爲僱員相關的額外字段。如何獲取特定現有人員對象的員工對象?即如何將人員對象傳遞給員工?
愚蠢的問題。從.net中的現有基礎對象創建派生對象
比方說,我有一堆人的對象,其所有的字段都填充了數據,我有一個從person類派生的僱員類型,並且具有與作爲僱員相關的額外字段。如何獲取特定現有人員對象的員工對象?即如何將人員對象傳遞給員工?
的人如果是作爲員工創建的,那麼只投:
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() {}
}
我以爲這麼多;感謝你的回答。 – 2009-02-01 15:11:10
爲什麼答案是這樣嗎? 我不明白你爲什麼不能將人員轉交給員工。如果它是基類,那麼所有的基類字段都必須在那裏? 我在誤解一些顯而易見的事情,爲什麼不能這樣做? – tim 2009-07-23 12:13:36