Objetos globales

12/10/2005 - 00:48 por ROLANDOCC | Informe spam
Saludos,

Tengo un proyecto en c# 2003,
tengo dos formularios (por el momento) y dos clases
clase_data
clase_negocios

en el form1 estoy declarando una instancia de clase_negocios, que a su vez
declara una instancia de clase_data,
mi problema es que no se que debo hacer para poder utilizar dentro de form2
(y otros formularios que crearé luego)
el objeto de tipo clase_negocios que declaré en el form1
lo que se podría llamar un objeto o variable global para toda la aplicacion.

Gracias.



Saludos desde Costa Rica! : )

DISCLAIMER: «Este mensaje se proporciona "como está" sin garantías de
ninguna indole, y no otorga ningún derecho.»

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
12/10/2005 - 11:15 | Informe spam
Hola,

La vía más rápida sería declarar el objeto como static public. De esta
manera, podrías referirte a él desde cualquier parte del proyecto como
Form1.Objeto_Negocio.
En cuanto a arquitectura se refiere, probablemente sería más aconsejable
poner ese objeto "global" dentro de la propia clase de negocio, y no dentro
de Form1.

Slds - Octavio

"ROLANDOCC" escribió en el mensaje
news:
Saludos,

Tengo un proyecto en c# 2003,
tengo dos formularios (por el momento) y dos clases
clase_data
clase_negocios

en el form1 estoy declarando una instancia de clase_negocios, que a su vez
declara una instancia de clase_data,
mi problema es que no se que debo hacer para poder utilizar dentro de
form2
(y otros formularios que crearé luego)
el objeto de tipo clase_negocios que declaré en el form1
lo que se podría llamar un objeto o variable global para toda la
aplicacion.

Gracias.



Saludos desde Costa Rica! : )

DISCLAIMER: «Este mensaje se proporciona "como está" sin garantías de
ninguna indole, y no otorga ningún derecho.»


Respuesta Responder a este mensaje
#2 ROLANDOCC
12/10/2005 - 16:55 | Informe spam
en efecto,
Form1.Objeto_Negocio
me funcionaria, pero en cada forma tendria que declarar un objeto de tipo
Form1, lo
cual me parece un gasto de recursos porque tendria una gran cantidad de
instancias de form1 y solamente estoy utilizando una propiedad de esta clase.

en cuanto a ponerlo global dentro de la clase no te entiendo, porque quien
yo quiero que sea global es la propia clase negocio en si, osea, me dices que
declare un objeto de tipo clase_negocio en la propia clase_negocio ?

en fin...
ya lo resolví de esta manera, en form1 declaro un objeto clase_negocio publico
de igual forma declaro un objeto de tipo clase_negocio privado en form2,
a la hora de clear la nueva instancia de form2 en form1 para mostrar este
en el
constructor de form1 recibo un objeto de tipo clase_negocio como parametro
por referencia, y dentro de form2 hago la asignacion:
form2.objeto_negocio=parametro_objeto_negocio;
de manera que siempre estaria utilizando un unico objeto de tipo
clase_negocio,
una sola instancia ya que es un parametro por referencia, asi me funciona de
maravilla y me parece que es una forma correcta de hacerlo.
si alguien tiene alguna observacion se lo agradeceria.

Gracias.


Saludos desde Costa Rica! : )

DISCLAIMER: «Este mensaje se proporciona "como está" sin garantías de
ninguna indole, y no otorga ningún derecho.»




"Octavio Hernandez" escribió:

Hola,

La vía más rápida sería declarar el objeto como static public. De esta
manera, podrías referirte a él desde cualquier parte del proyecto como
Form1.Objeto_Negocio.
En cuanto a arquitectura se refiere, probablemente sería más aconsejable
poner ese objeto "global" dentro de la propia clase de negocio, y no dentro
de Form1.

Slds - Octavio

"ROLANDOCC" escribió en el mensaje
news:
> Saludos,
>
> Tengo un proyecto en c# 2003,
> tengo dos formularios (por el momento) y dos clases
> clase_data
> clase_negocios
>
> en el form1 estoy declarando una instancia de clase_negocios, que a su vez
> declara una instancia de clase_data,
> mi problema es que no se que debo hacer para poder utilizar dentro de
> form2
> (y otros formularios que crearé luego)
> el objeto de tipo clase_negocios que declaré en el form1
> lo que se podría llamar un objeto o variable global para toda la
> aplicacion.
>
> Gracias.
>
>
>
> Saludos desde Costa Rica! : )
>
> DISCLAIMER: «Este mensaje se proporciona "como está" sin garantías de
> ninguna indole, y no otorga ningún derecho.»
>
>



Respuesta Responder a este mensaje
#3 Octavio Hernandez
12/10/2005 - 19:01 | Informe spam
Rolando:

pero en cada forma tendria que declarar un objeto de tipo Form1



¡No! Un miembro estático es como una variable global de antes; todos tus
formularios estarían COMPARTIENDO el mismo objeto de negocio. En VB.NET, el
equivalente de static es SHARED, que tal vez sea más claro :-)

en cuanto a ponerlo global dentro de la clase no te entiendo, porque quien
yo quiero que sea global es la propia clase negocio en si, osea, me dices
que
declare un objeto de tipo clase_negocio en la propia clase_negocio ?



Sí, no hay ningún problema en ello:

public class ClaseNegocio
{
// miembros de la clase...

// el objeto estático
public static ClaseNegocio ObjetoNegocio = new ClaseNegocio();
}

ya lo resolví de esta manera, en form1 declaro un objeto clase_negocio
publico
de igual forma declaro un objeto de tipo clase_negocio privado en form2,
a la hora de clear la nueva instancia de form2 en form1 para mostrar este
en el
constructor de form1 recibo un objeto de tipo clase_negocio como parametro
por referencia, y dentro de form2 hago la asignacion:
form2.objeto_negocio=parametro_objeto_negocio;



En efecto, eso funcionaría, pero es más código...

Slds - Octavio
Respuesta Responder a este mensaje
#4 ROLANDOCC
12/10/2005 - 19:23 | Informe spam
Gracias Octavio, en efecto tienes razon, es menos código de esta manera,
solo me queda una única duda,
así como tu me dices para accesar un metodo de la clase debo hacer algo asi

Cls_Negocio.PO_Negocio.PB_Verifica_Usuario();

Es esto correcto o hay alguna forma de no hacer alución a la clase, osea
solo:

PO_Negocio.PB_Verifica_Usuario

Muchas Gracias!


Saludos desde Costa Rica! : )

DISCLAIMER: «Este mensaje se proporciona "como está" sin garantías de
ninguna indole, y no otorga ningún derecho.»




"Octavio Hernandez" escribió:

Rolando:

> pero en cada forma tendria que declarar un objeto de tipo Form1

¡No! Un miembro estático es como una variable global de antes; todos tus
formularios estarían COMPARTIENDO el mismo objeto de negocio. En VB.NET, el
equivalente de static es SHARED, que tal vez sea más claro :-)

> en cuanto a ponerlo global dentro de la clase no te entiendo, porque quien
> yo quiero que sea global es la propia clase negocio en si, osea, me dices
> que
> declare un objeto de tipo clase_negocio en la propia clase_negocio ?

Sí, no hay ningún problema en ello:

public class ClaseNegocio
{
// miembros de la clase...

// el objeto estático
public static ClaseNegocio ObjetoNegocio = new ClaseNegocio();
}

> ya lo resolví de esta manera, en form1 declaro un objeto clase_negocio
> publico
> de igual forma declaro un objeto de tipo clase_negocio privado en form2,
> a la hora de clear la nueva instancia de form2 en form1 para mostrar este
> en el
> constructor de form1 recibo un objeto de tipo clase_negocio como parametro
> por referencia, y dentro de form2 hago la asignacion:
> form2.objeto_negocio=parametro_objeto_negocio;

En efecto, eso funcionaría, pero es más código...

Slds - Octavio



Respuesta Responder a este mensaje
#5 Octavio Hernandez
12/10/2005 - 19:39 | Informe spam
Rolando,

Efectivamente, para acceder a ese objeto tendrías que poner el nombre de la
clase delante:

if (ClaseNegocio.ObjetoNegocio.VerificaUsuario(txtNombre.Text,
txtContra.Text))
// ...

No hay forma de no hacer alusión a la clase.

Slds - Octavio

"ROLANDOCC" escribió en el mensaje
news:
Gracias Octavio, en efecto tienes razon, es menos código de esta manera,
solo me queda una única duda,
así como tu me dices para accesar un metodo de la clase debo hacer algo
asi

Cls_Negocio.PO_Negocio.PB_Verifica_Usuario();

Es esto correcto o hay alguna forma de no hacer alución a la clase, osea
solo:

PO_Negocio.PB_Verifica_Usuario

Muchas Gracias!


Saludos desde Costa Rica! : )

DISCLAIMER: «Este mensaje se proporciona "como está" sin garantías de
ninguna indole, y no otorga ningún derecho.»




"Octavio Hernandez" escribió:

Rolando:

> pero en cada forma tendria que declarar un objeto de tipo Form1

¡No! Un miembro estático es como una variable global de antes; todos tus
formularios estarían COMPARTIENDO el mismo objeto de negocio. En VB.NET,
el
equivalente de static es SHARED, que tal vez sea más claro :-)

> en cuanto a ponerlo global dentro de la clase no te entiendo, porque
> quien
> yo quiero que sea global es la propia clase negocio en si, osea, me
> dices
> que
> declare un objeto de tipo clase_negocio en la propia clase_negocio ?

Sí, no hay ningún problema en ello:

public class ClaseNegocio
{
// miembros de la clase...

// el objeto estático
public static ClaseNegocio ObjetoNegocio = new ClaseNegocio();
}

> ya lo resolví de esta manera, en form1 declaro un objeto clase_negocio
> publico
> de igual forma declaro un objeto de tipo clase_negocio privado en
> form2,
> a la hora de clear la nueva instancia de form2 en form1 para mostrar
> este
> en el
> constructor de form1 recibo un objeto de tipo clase_negocio como
> parametro
> por referencia, y dentro de form2 hago la asignacion:
> form2.objeto_negocio=parametro_objeto_negocio;

En efecto, eso funcionaría, pero es más código...

Slds - Octavio



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