У меня есть этот метод в классе города. Он должен создать новый город на основе объекта, к которому применяется метод:
public City newCity(string newCityName, int dX, int dY)
{
City c=new City(this); //based on a constructor : City(City c){}
c.CityName=newCityName;
c.NoOfNeighborhoods=1;
c.NumOfResidents=0;
c.CityCenter.Move(dX,dY);
return c;
}
CityCenter имеет тип «Точка», который имеет два поля - x, y.
метод Move в классе Point предназначен для изменения местоположения CityCenter. Это выглядит так:
public void Move(int dX, int dY)
{
this.X = x + dX;
this.Y = y + dY;
}
Что происходит, так это то, что новый объект c и существующий объект City оба изменены. Я думаю, что модификатор "this" тоже работает на существующем объекте ...
Как я могу воспользоваться методом Move, не вызывая этого поведения?
Примечание: это закрытый API, поэтому я могу добавлять в проект только частные методы.