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