我有两个类,他们有其他类型的字段。现在我想继承这些类并行并使用一些魔法,这样派生类可以具有相同的字段,但在继承之后相互之间具有相对类型。
class Leader {
public Follower slave;
}
class Follower {
public Leader master;
}
class Teacher : Leader {}
class Student : Follower {}
class Officer : Leader {}
class Soldier : Follower {}
Teacher.slave.GetType(); // Returns Student
Officer.slave.GetType(); // Returns Soldier
Student.master.GetType(); // Returns Teacher
Soldier.master.GetType(); // Returns Officer
是否有一种模式或任何解决方案可以在C#中实现这一点?
答案 0 :(得分:0)
你可以使用泛型:
class Leader<TFollower>
{
public TFollower Slave;
}
class Follower<TLeader>
{
public TLeader Master;
}
class Teacher : Leader<Student>
{
}
class Student : Follower<Teacher>
{
}
class Officer : Leader<Soldier>
{
}
class Soldier : Follower<Officer>
{
}