ref entre formularios

13/07/2004 - 22:22 por Calima | Informe spam
Hola a todos,
Tengo un formulario que le pasa por referencia al constructor de otro
formulario un valor entero.

El segundo formulario varía dicho entero y teoricamente el valor del entero
asignado en el formulario principal por consiguiente también debería tener
el mismo valor (ya que apuntan al mismo espacio de memoria).. Es correcto?

A mi no me cambia el valor. Os pongo un ejemplo rápido:

public class Form1
{
private int A;
public Form1()
{
A = 0;
}

public void AbreForm2()
{
new Form2(ref A).ShowDialog();
Console.Writeline(A.ToString()); // Debería mostrar 0 ó 10 ????
}
}

public class Form2()
{
private int B;
public Form2(ref int A)
{
B = A;
B = 10;
}
}


Un saludo y gracias

Preguntas similare

Leer las respuestas

#1 pablo crosio
13/07/2004 - 22:46 | Informe spam
hola!

pues por lo que se ve en ningun momento estas asignando un
nuevo valor a A...

esto:

B = A;
B = 10;

solamente cambia B pero no A

intenta modificando realmente A:

A = 10;

salu2!!

pablo

Hola a todos,
Tengo un formulario que le pasa por referencia al


constructor de otro
formulario un valor entero.

El segundo formulario varía dicho entero y teoricamente


el valor del entero
asignado en el formulario principal por consiguiente


también debería tener
el mismo valor (ya que apuntan al mismo espacio de


memoria).. Es correcto?

A mi no me cambia el valor. Os pongo un ejemplo rápido:

public class Form1
{
private int A;
public Form1()
{
A = 0;
}

public void AbreForm2()
{
new Form2(ref A).ShowDialog();
Console.Writeline(A.ToString()); // Debería


mostrar 0 ó 10 ????
}
}

public class Form2()
{
private int B;
public Form2(ref int A)
{
B = A;
B = 10;
}
}


Un saludo y gracias


.

Respuesta Responder a este mensaje
#2 Alejandro Perez
13/07/2004 - 23:26 | Informe spam
Hola Calima, la cuestion es que esa variable privada B no
es la que mantiene la referencia a A del form1, sino el
parametro A del constructor del form2.

Si?

Bye
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Hola a todos,
Tengo un formulario que le pasa por referencia al


constructor de otro
formulario un valor entero.

El segundo formulario varía dicho entero y teoricamente


el valor del entero
asignado en el formulario principal por consiguiente


también debería tener
el mismo valor (ya que apuntan al mismo espacio de


memoria).. Es correcto?

A mi no me cambia el valor. Os pongo un ejemplo rápido:

public class Form1
{
private int A;
public Form1()
{
A = 0;
}

public void AbreForm2()
{
new Form2(ref A).ShowDialog();
Console.Writeline(A.ToString()); // Debería


mostrar 0 ó 10 ????
}
}

public class Form2()
{
private int B;
public Form2(ref int A)
{
B = A;
B = 10;
}
}


Un saludo y gracias


.

Respuesta Responder a este mensaje
#3 Calima
14/07/2004 - 08:18 | Informe spam
Exacto, pero si yo quiero cambiar el valor de la variable pasada como
referencia desde cualquier método del Form2, como lo puedo hacer?? esto es
lo que he echo y no funciona:

public class Form1
{
private int A;
public Form1()
{
A = 0;
}

public void AbreForm2()
{
new Form2(ref A).ShowDialog();
Console.Writeline(A.ToString()); // Debería mostrar 0 ó 10 ????
}
}

public class Form2()
{
private int B;
public Form2(ref int A)
{
B = A;
}

public void UnMetodoCualquiera()
{
B;
}
}



"Alejandro Perez" escribió en el mensaje
news:2b99001c46920$094b0d40$
Hola Calima, la cuestion es que esa variable privada B no
es la que mantiene la referencia a A del form1, sino el
parametro A del constructor del form2.

Si?

Bye
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Hola a todos,
Tengo un formulario que le pasa por referencia al


constructor de otro
formulario un valor entero.

El segundo formulario varía dicho entero y teoricamente


el valor del entero
asignado en el formulario principal por consiguiente


también debería tener
el mismo valor (ya que apuntan al mismo espacio de


memoria).. Es correcto?

A mi no me cambia el valor. Os pongo un ejemplo rápido:

public class Form1
{
private int A;
public Form1()
{
A = 0;
}

public void AbreForm2()
{
new Form2(ref A).ShowDialog();
Console.Writeline(A.ToString()); // Debería


mostrar 0 ó 10 ????
}
}

public class Form2()
{
private int B;
public Form2(ref int A)
{
B = A;
B = 10;
}
}


Un saludo y gracias


.

Respuesta Responder a este mensaje
#4 Octavio Hernandez
14/07/2004 - 09:46 | Informe spam
Calima,

Eso *NO* podrás hacerlo con los recursos "normales" de C#, porque no hay
punteros en esa "parte" del lenguaje. Habría que mirar el capítulo
relacionado con el código no seguro (unsafe code).

Slds - Octavio

"Calima" escribió en el mensaje
news:
Exacto, pero si yo quiero cambiar el valor de la variable pasada como
referencia desde cualquier método del Form2, como lo puedo hacer?? esto es
lo que he echo y no funciona:

public class Form1
{
private int A;
public Form1()
{
A = 0;
}

public void AbreForm2()
{
new Form2(ref A).ShowDialog();
Console.Writeline(A.ToString()); // Debería mostrar 0 ó 10 ????
}
}

public class Form2()
{
private int B;
public Form2(ref int A)
{
B = A;
}

public void UnMetodoCualquiera()
{
B;
}
}



"Alejandro Perez" escribió en el mensaje
news:2b99001c46920$094b0d40$
Hola Calima, la cuestion es que esa variable privada B no
es la que mantiene la referencia a A del form1, sino el
parametro A del constructor del form2.

Si?

Bye
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


>Hola a todos,
>Tengo un formulario que le pasa por referencia al
constructor de otro
>formulario un valor entero.
>
>El segundo formulario varía dicho entero y teoricamente
el valor del entero
>asignado en el formulario principal por consiguiente
también debería tener
>el mismo valor (ya que apuntan al mismo espacio de
memoria).. Es correcto?
>
>A mi no me cambia el valor. Os pongo un ejemplo rápido:
>
>public class Form1
>{
> private int A;
> public Form1()
> {
> A = 0;
> }
>
> public void AbreForm2()
> {
> new Form2(ref A).ShowDialog();
> Console.Writeline(A.ToString()); // Debería
mostrar 0 ó 10 ????
> }
>}
>
>public class Form2()
>{
> private int B;
> public Form2(ref int A)
> {
> B = A;
> B = 10;
> }
>}
>
>
>Un saludo y gracias
>
>
>.
>


Respuesta Responder a este mensaje
#5 Calima
14/07/2004 - 10:04 | Informe spam
y entonces, no hay manera de poder cambiar la variable A desde cualquier
parte del Form2?

Un saludo.



"Octavio Hernandez" escribió en el mensaje
news:
Calima,

Eso *NO* podrás hacerlo con los recursos "normales" de C#, porque no hay
punteros en esa "parte" del lenguaje. Habría que mirar el capítulo
relacionado con el código no seguro (unsafe code).

Slds - Octavio

"Calima" escribió en el mensaje
news:
> Exacto, pero si yo quiero cambiar el valor de la variable pasada como
> referencia desde cualquier método del Form2, como lo puedo hacer?? esto


es
> lo que he echo y no funciona:
>
> public class Form1
> {
> private int A;
> public Form1()
> {
> A = 0;
> }
>
> public void AbreForm2()
> {
> new Form2(ref A).ShowDialog();
> Console.Writeline(A.ToString()); // Debería mostrar 0 ó 10


????
> }
> }
>
> public class Form2()
> {
> private int B;
> public Form2(ref int A)
> {
> B = A;
> }
>
> public void UnMetodoCualquiera()
> {
> B;
> }
> }
>
>
>
> "Alejandro Perez" escribió en el mensaje
> news:2b99001c46920$094b0d40$
> Hola Calima, la cuestion es que esa variable privada B no
> es la que mantiene la referencia a A del form1, sino el
> parametro A del constructor del form2.
>
> Si?
>
> Bye
> Alejandro Perez
> MCSD/MCDBA/MCT
> Caracas - Venezuela
>
>
> >Hola a todos,
> >Tengo un formulario que le pasa por referencia al
> constructor de otro
> >formulario un valor entero.
> >
> >El segundo formulario varía dicho entero y teoricamente
> el valor del entero
> >asignado en el formulario principal por consiguiente
> también debería tener
> >el mismo valor (ya que apuntan al mismo espacio de
> memoria).. Es correcto?
> >
> >A mi no me cambia el valor. Os pongo un ejemplo rápido:
> >
> >public class Form1
> >{
> > private int A;
> > public Form1()
> > {
> > A = 0;
> > }
> >
> > public void AbreForm2()
> > {
> > new Form2(ref A).ShowDialog();
> > Console.Writeline(A.ToString()); // Debería
> mostrar 0 ó 10 ????
> > }
> >}
> >
> >public class Form2()
> >{
> > private int B;
> > public Form2(ref int A)
> > {
> > B = A;
> > B = 10;
> > }
> >}
> >
> >
> >Un saludo y gracias
> >
> >
> >.
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida