Variables por valor enlazadas a un objeto object.?????

05/05/2005 - 17:16 por sergiño | Informe spam
dim a as object
dim n as short = 3

a = n

a +=1

a vale 1
n vale 3
yo me esperaba que
a valiese 4 y n tambien valiese 4
si a en vez de ser un numero es una matriz funciona el paso por referencia.
¿a que se debe?
puede ser que solo las variables que tipos por referencia pasan el puntero a
los objetos referenciables y si la variable es de valor lo que le pasa no es
el puntero sino la copia del valor

un saludo

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
05/05/2005 - 19:06 | Informe spam
Los tipos por valor se copian cuando se asignan a una variable. Con los
tipos por referencia lo que se copia es una referencia al objeto y no el
objeto mismo.
Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C
http://spaces.msn.com/members/emorcillo/
Respuesta Responder a este mensaje
#2 Tristan
06/05/2005 - 00:40 | Informe spam
Exacto, esa es la razón por la que las clases se denominan tipos referencia,
y los tipos como integer, estructuras, etc... se denominan tipos valor.

Por eso, y es importante puesto que muchos del foro lo desconocen, suele ser
una tontería pasar por referencia un objeto como parámetro de un método. Los
objetos son siempre referencias, nunca se copian al asignarlos.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 sergiño
06/05/2005 - 09:47 | Informe spam
El caso es que queria enlazar de alguna forma el ancho de una columna de un
litview con dataset

ds.tables("configuracion").rows(0)("ancho")
lvtareas.columns(0).width

es decir en lazar estos para que sean un mismo valor.

gracias y un saludo.


"Tristan" wrote:

Exacto, esa es la razón por la que las clases se denominan tipos referencia,
y los tipos como integer, estructuras, etc... se denominan tipos valor.

Por eso, y es importante puesto que muchos del foro lo desconocen, suele ser
una tontería pasar por referencia un objeto como parámetro de un método. Los
objetos son siempre referencias, nunca se copian al asignarlos.

Juan Carlos Badiola
MVP - C#



Respuesta Responder a este mensaje
#4 Tristan
06/05/2005 - 21:10 | Informe spam
Si, comprendo lo que quieres, pero no sabría darte una solución. Creo
recordar que hace mucho tiempo, vi en el foro de C#, alguien que buscaba una
forma de enlazar dos variables enteras y lo logró. No recuerdo como, pero
juraría que fué aprovechando alguna característica del enlace a datos, tal
vez utilizando punteros y código inseguro. No lo recuerdo.

En tu caso, sería sencillo si quisieses enlazar el Width de lvTareas con el
campo de la tabla, pero si lo quieres enlazar con el ancho de una columna,
no conozco la forma.

Por cierto, ¿y para qué?. ¿No puedes actualizar los dos manualmente?

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#5 sergiño
09/05/2005 - 18:49 | Informe spam
Tengo un propertygrid, enlazado con un objeto donde esta definido el ancho
que deben tener cada columna del listview. Este objeto toma los valores para
cada propiedad de un dataset cargado de un xml, el property grid esta en un
formulario emergente, y queria que segun se cambien los valores de las
propiedades del objeto enlazado al propertydird , al estar enlazados al
dataset y al listview.columns. pues todos se cambiasen a la vez,
inmediatamente se viera el resultado en el listview. pero como ese enlace no
lo consigo.
resumiendo
propertygrid enlazado a objeto, objeto enlazado a dataset a la vez que el
ancho de las columnas del listview tambien este enlazado al dataset. así si
cambio un valor en el propertygrid inmediatamete lo veria en el listview.

Se que podria hacerlo de alguna otra forma de la que la intento pero es que,
me gusta aprender y provar cosas nuevas :D.


Un saludo.

"Tristan" wrote:

Si, comprendo lo que quieres, pero no sabría darte una solución. Creo
recordar que hace mucho tiempo, vi en el foro de C#, alguien que buscaba una
forma de enlazar dos variables enteras y lo logró. No recuerdo como, pero
juraría que fué aprovechando alguna característica del enlace a datos, tal
vez utilizando punteros y código inseguro. No lo recuerdo.

En tu caso, sería sencillo si quisieses enlazar el Width de lvTareas con el
campo de la tabla, pero si lo quieres enlazar con el ancho de una columna,
no conozco la forma.

Por cierto, ¿y para qué?. ¿No puedes actualizar los dos manualmente?

Juan Carlos Badiola
MVP - C#



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida