Having an issue with the "this" modifier...

Posted by user344246 on Stack Overflow See other posts from Stack Overflow or by user344246
Published on 2010-05-18T16:41:04Z Indexed on 2010/05/18 16:50 UTC
Read the original article Hit count: 132

Filed under:
|

I have this method in City class. It should create a new city based on the object which the method is applied to:

 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 is of type "Point" which has two fields - x,y. the Move method in Point class is ment to change the CityCenter location. It looks like this:

 public void Move(int dX, int dY)
    {
        this.X = x + dX;
        this.Y = y + dY;
    }

What happens is that the new object,c and the existing City object are both changed. I think that "this" modifier works on the existing object too...

How can I take advantage of the Move method without causing this behavior? Note: this is a closed API, so I can only add private methods to the project.

© Stack Overflow or respective owner

Related posts about this

    Related posts about c#