当我插入第二个对象(孩子)时,我需要给他的父母分配孩子的名字(已经有孩子对象,在属性中具有父母的名字),但是当我调用父对象时总是返回子对象。
我正在使用哈希表存储“货物”对象。
// Hashtable(key,value)
TablaCargos(CargoObject.Name, CargoObject)
每个货物都应有父母名单和孩子名单
属于我的货运课程
class Cargo {
private string nombre;
private string codigo;
private string padre;
private List<string> hijos = new List<string>();
public Cargo() {
nombre = "";
codigo = "";
padre = "";
hijos = new List<string>();
}
//getter and setters
}
我的表格
Cargo cargo = new Cargo();
Cargo cargoHijo = new Cargo();
Cargo cargoPadre = new Cargo();
Hashtable TablaCargos = new Hashtable();
string Root = "";
private void btnAgregar_Click(object sender, EventArgs e)
{
cargo.Nombre = txtNombre.Text;
cargo.Codigo = txtCodigo.Text;
cargo.Padre = txtPadre.Text;
TablaCargos.Add(txtNombre.Text, cargo);
Ordenamiento(txtNombre.Text);
}
private void Ordenamiento(string cargoActual) {
cargoHijo = (Cargo)TablaCargos[cargoActual];
if (cargoHijo.Padre == "") {
// THIS IS A PARENT
Root = cargoActual;
} else {
// THIS IS A CHILD
AsignarPadre(cargoHijo.Padre, cargoHijo.Nombre);
}
private void AsignarPadre(String Padre, String Hijo)
{
// THE PROBLEM IS HERE, CLEARLY I SEND THE Parent's KEY
cargoPadre = (Cargo)TablaCargos[Padre];
// BUT IN THE NEXT LINE cargoPadre TAKES THE VALUE OF THE CHILD
// THE SAME VALUE OF cargoHijo
cargoPadre.Hijos.Add(Hijo);
}
我希望将孩子的名字分配给父母的孩子的财产,但孩子会接受。
也许我错过了实例化,或者,我不知道
答案 0 :(得分:-1)
问题cargo = new Cargo();
在btnAdicionar_Click
的开头已解决。
谢谢大家的时间和建议。 :)