Dobrý den,
v kódu:
public void AddComponent(Component item)
{
if (item != null && !Components.Contains(item))
{
item.Parent = this;
Update += () => item.Update();
Draw += () => item.Draw();
Components.Add(item);
item.Load();
}
}
public void RemoveComponent(Component item)
{
if (item != null && Components.Contains(item))
{
item.Parent = null;
Update -= () => item.Update();
Draw -= () => item.Draw();
Components.Remove(item);
}
}
stojí za lokální proměnnou "item" stejná rodičova proměnná. Přesto funguje pouze smazání z listu. Řešení je na snadě - vynullovat obě akce a cyklem nasadit volání zbývajících položek. Než to však udělám takto, chci se ujistit, že neexistuje jiná cesta. (Jak identifikovat konkrétní kus kódu v akci, pakliže si uchovám původní proměnnou?)
Děkuji.