class A
{
public TextBox t;
...
...
public A()
{
t = new TextBox();
}
}
class B
{
public TextBox tRemoto;
...
...
public B()
{
}
}
class aplicacion
{
int Main()
{
A objetoA = new A();
B objetoB = new B();
objetoB.tRemoto = objetoA.t;
}
...
...
}
En el ejemplo anterior basicamente se creo una clas A y una clase B, existe una tercera clase que ya es la aplicacion.
En el main de la aplicacion se crea un objeto de tipo A y otro de tipo B.
el constructor de A crea instancia el objeto t que es de tipo textbox mientras que el constructir de B no hace nada.
Ya una vez inicializados los objetos se hace:
objetoB.tRemoto = objetoA.t;
Recuerda que objetoB.tRemoto es un objeto sin instanciar porque tal como vimos en el constructor de B no se hace nada, mientras que objetoA.t ya fue instanciado; Las clases son tipos de referencia por lo cual cuando asigno una clase a otra lo que estoy haciendo no es copiar el objeto sino copiar la referencia al objeto por tanto
objetoB.tRemoto = objetoA.t;
lo que hace es que objetoB.tRemoto y objetoA.t queden apuntando al mismo objeto en memoria aunque son 'variables ' de clases diferentes, de esta forma todo cambio hecho a objetoA.t se ve de inmediato en objetoB.tRemoto puesto que estan referenciando el mismo objeto en memoria.
Te anexo una aplicación que es una curiosidad nada mas... pero que hace uso de eso.
si te fijas en la aplicacion anexa se crean dos instancias de la misma clase pero despues de crear la instancia se asignan los texbox intercaladamente, es decir el textbox de un objeto se asigna al 'textbox remoto' del otro objeto y viceversa, el resultado es que al escribir en el textbox de un objeto el texto se refleja automaticamente en el textbox remoto del otro objeto ya que ambos apuntan al mismo textbox en memoria.
Espero que haya quedado claro... anexo ejemplo.