是否有理由让我的第二个实例化 object 占用我的第一个 object 的值?

Is there a reason to my second instantiated object takes my first object's value?

当我插入第二个 Object(a Child) 时,我需要为他的 parent 分配他的 child 的名字(已经 Child object,在 属性 中有 parent 的名字),但是当我调用 Parent object 时总是 returns child object.

我正在使用哈希表存储 "Cargo" objects.

// Hashtable(key,value)
TablaCargos(CargoObject.Name, CargoObject)

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

我的一部分 class 货物

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

我希望将 child 的名字分配给 parent 的 child 属性,但 child 接受了它。

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

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