Witam, jak w C# zrobić taką metodę w obiekcie klasy, by uruchamiała inną metodę (w moim przypadku konstruktor), który jako parametr ma przyjąć referencję na ten obiekt, w którym wywołana została metoda? Wiem, trochę zawiłe, ale pokażę, w jaki sposób próbowałem to zrobić i chyba każdy zrozumie.
//jeden z konstruktorów klasy reprezentującą wieżyczkę w grze
public CTower(CTower model, Vector2 position, ref CStage stage)
{
/* ... */
}
/* ... ... ... */
//główna klasa obsługująca cały poziom
public class CStage //klasa reprezentująca całą mapę, zawiera wszystko
{
public List<CTower> Towers; //lista wszystkich wieżyczek
/* ... */
public void BuildTower(CTower tower, Vector2 position)
{
Money -= tower.m_cost;
Towers.Add(new CTower(tower, position, ref this)); //! Nie działa, zapis 'ref this' jest niepoprawny!
}
Jeśli zmienię konstruktor, by nie przyjmował referencji, tylko sam obiekt, to wtedy, przekazując go jako parametr, przekażę kopię obiektu, a nie sam obiekt....
Da się to jakoś zrobić? Na przykład za pomocą wskaźnika?