According to your explanation, it is not called an instance, but an object reference. An instance of a class is called an object. I think your question is: "What is the difference between an object and a reference variable?" I will try to explain this with a few examples:
Foo f;
I just declared a reference variable. This is not an object, but only a link related to the object.
f = new Foo();
Now I created a new object and assigned it to the reference variable f , so every time I do something with f , I refer to the Foo object. For example, when I call f.Name = "MyFoo"; I am referring to a foo object.
Foo otherFoo;
Now I am declaring another reference variable.
otherFoo = f;
Now we have ONE object in memory, but TWO strong> referenced variables that reference the same object.
f.IsFoo = true; bool isotherFooFoo = otherFoo.IsFoo;
This last line will return true because we changed the IsFoo property to true and f and otherFoo reffer to the same object.
Hope this will explain everything to you. :)
source share