У меня этот метод в классе City. Он должен создать новый город, основанный на объекте, который метод применяется к:Имея проблему с модификатором «this»
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 имеет типа «Точка», который имеет два поля - х, у. Метод Move в классе Point предназначен для изменения местоположения CityCenter. Это выглядит так:
public void Move(int dX, int dY)
{
this.X = x + dX;
this.Y = y + dY;
}
Случается, что новый объект, c и существующий объект City изменены. Я думаю, что этот «модификатор» работает и над существующим объектом ...
Как я могу воспользоваться методом Move, не вызывая этого поведения? Примечание: это закрытый API, поэтому я могу добавлять только частные методы в проект.
Мелкая копия, возможно? –
Это может помочь опубликовать код в 'City (City c) {}' –
Можете ли вы разместить код конструктора 'City (Город c)'? Я подозреваю, что он создает мелкую копию, поэтому свойство «CityCenter» относится к тому же экземпляру «Point». – dtb