La diferencia entre la creación de objetos en C# y la referencia a objetos
Una referencia a un objeto es nula cuando la variable ya no hace referencia a ningún objeto. Cuando decimos que pasamos un objeto a un método, en realidad estamos pasando una referencia al objeto a un método. Pero en la mayoría de los casos, todos ignoran la diferencia entre objetos y referencias a objetos. Y ésta es precisamente la clave para comprender los objetos.
La relación entre la creación del objeto y la referencia al objeto es:
Pero en este momento el punto no es una referencia a ningún objeto, apunta a nulo. En la sección anterior, hablamos de que una referencia a un objeto puede apuntar a nulo. Lo que realmente significa es:
Una referencia a un objeto puede apuntar a un objeto creado específico o puede apuntar a un valor nulo. Es decir, un objeto tiene un solo punto de referencia y no puede apuntar a varios objetos al mismo tiempo. Esto también es fácil de entender, tomando prestado el concepto de punteros.
Un puntero sólo puede apuntar a un bloque de memoria único a la vez, lo que representa una dirección de memoria única. Dado que la variable de referencia punto se puede operar mediante "asignación", si la clase Punto pasa "Punto 2 = nuevo Punto()" se ha creado el nuevo objeto 2.