I just want to be sure about this. When I have code like this: //data member System.Drawing.Drawing2D.GraphicsPath graphicspath=new System.Drawing.Drawing2D.GraphicsPath(); //method public System.Drawing.Drawing2D.GraphicsPath GetGraphicsPath() { return graphicspath; } there is a reference, a pointer returned to 'graphicspath' and NOT a copy of the object?
I believe it returns a copy, not the original object. Don't hold me to it but typically if you want pointers returned, you should declare the function's result as a pointer. Please note that just about any use of pointers requires you to tag the function as "unsafe" for obvious reasons. C# tends to lend itself to stability versus efficiency. Its much safer to return a copy of an object than to define a pointer across functions.