为了账号安全,请及时绑定邮箱和手机立即绑定

我的第二个实例化对象是否有理由采用我的第一个对象的值?

我的第二个实例化对象是否有理由采用我的第一个对象的值?

C#
MMMHUHU 2022-11-21 21:44:11

当我插入第二个对象(一个孩子)时,我需要给他的父母分配他孩子的名字(已经有孩子对象,属性中有父母的名字),但是当我调用父对象时总是返回子对象。


我正在使用哈希表来存储“货物”对象。


// Hashtable(key,value)

TablaCargos(CargoObject.Name, CargoObject)

每个 Cargo 都应该有一个 Parent 和一个 Child 列表


我班货物的一部分


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);

}

我希望将孩子的名字分配给父母的孩子财产,但孩子却拿走了。


也许我错过了一个实例化或者,我不知道


查看完整描述

1 回答

?
神不在的星期二

TA贡献1657条经验 获得超6个赞

cargo = new Cargo();一开始用这行就解决了问题btnAdicionar_Click。谢谢大家的时间和建议。:)



查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 7 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信