原谅我,因为我知道我的措辞太可怕了。我只是举个例子。
public class MainClass{
public int someVariable;
public List<HasAClass> cList = new List<HasAClass>();
addHasAClass(HasAClass c){
cList.Add(c);
}
}
public class HasAClass{
public HasAClass(){
//Modify someVariable in some way????
}
}
public class HasASubClass : HasAClass{
public ComposedClass(){
//Modify someVariable in some way???
}
}
我无法为这些问题找到合适的词语,但这是我要做的事情: 我正在为类似于龙与地下城的RPG创建一个辅助工具。每个角色都有各种特殊能力,可以某种方式影响角色(包括消极和积极)。我正在尝试使用各种子类来存储相关信息,并在不同的时间点添加到角色。我无法弄清楚当HasA类的实例被添加到它时,如何修改角色的属性(我在我的例子中称之为Main Class)。
答案 0 :(得分:0)
HasAClass 需要对拥有实例的引用,以便它可以向父级询问值并在需要时更新它们...
public class HasAClass
{
private MainClass _mainClass;
public HasAClass(MainClass mainClass)
{
_mainClass = mainClass;
_mainClass.someVaraible = 42;
}
}
然后,您需要在创建时将所有者引用传递给 HasAClass 的构造函数。如果在创建实例时无法做到这一点,那么您需要在创建实例后将其指定为属性。例如在 addHasAClass 方法内部。