Variable Global

09/11/2004 - 20:07 por Ruben L. | Informe spam
Hola a todos.
Tengo un sistema en el que para accesar se pide un password. En VB6
declaraba una variable global en un modulo y ahi almacenaba el password
tecleado y en base a eso permitia o denegaba el acceso a las opciones del
menu, por ej.

if QUsuario='supervisor' then
formx.show
else
msgbox "Acceso Denegado"
endif

La cuestion es que en .Net ya no quiero usar modulos, ¿alguien me podria dar
alguna directriz de como podria manejar esto, de manera digamos mas
profesional?

Gracias.

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
09/11/2004 - 20:20 | Informe spam
La cuestion es que en .Net ya no quiero usar modulos, ¿alguien me
podria dar alguna directriz de como podria manejar esto, de manera
digamos mas profesional?



Puedes declararla como Shared en una clase (y mas profesional quedaria si lo
encapsulas en una propiedad). Un metodo, campo o propiedad Shared no
necesita de una instancia de la clase para ser llamado, simplemente la
llamas usando el nombre de la clase. Por ejemplo:

Class MiClase

Public Shared MiCampoShared As String

End Class

val = MiClase.MiCampoShared
MiClase.MiCampoShared = "abc"

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Luis Cisneros
09/11/2004 - 20:49 | Informe spam
Hola!

Tambien seria interezante aplicar un Patron Singlenton para una clase
usuario, asi, cargar el usuario al llamar por primera ves a la clase,
mantienes en memoria el objeto sin necesidad de declarar la variable global y
lo llamas desde cualquier momento.

Saludos
Luis Cisneros

"Eduardo A. Morcillo [MS MVP VB]" wrote:

> La cuestion es que en .Net ya no quiero usar modulos, ¿alguien me
> podria dar alguna directriz de como podria manejar esto, de manera
> digamos mas profesional?

Puedes declararla como Shared en una clase (y mas profesional quedaria si lo
encapsulas en una propiedad). Un metodo, campo o propiedad Shared no
necesita de una instancia de la clase para ser llamado, simplemente la
llamas usando el nombre de la clase. Por ejemplo:

Class MiClase

Public Shared MiCampoShared As String

End Class

val = MiClase.MiCampoShared
MiClase.MiCampoShared = "abc"

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo



Respuesta Responder a este mensaje
#3 Leonardo Azpurua
10/11/2004 - 03:34 | Informe spam
"Luis Cisneros" escribió en el
mensaje news:
Hola!

Tambien seria interezante aplicar un Patron Singlenton para una clase
usuario, asi, cargar el usuario al llamar por primera ves a la clase,
mantienes en memoria el objeto sin necesidad de declarar la variable
global y
lo llamas desde cualquier momento.



Hola, Luis:

A ver que no entiendo.

¿Qué diferencia hay entre una clase conformada según el patrón Singleton y
una clase formada exclusivamente por miembros Shared?

He leido algunos comentarios sobre el asunto y no me entiendo. Igual me
estoy perdiendo de algo.

Salud!

Leonardo
mvp vb
Respuesta Responder a este mensaje
#4 Tristan
10/11/2004 - 12:02 | Informe spam
Bueno, alguna diferencia existe.

La fundamental es la forma de acceso. Mientras que para
trabajar con una clase Singleton, hay que crear una
instancia y trabajar sobre ella, para una clase estática,
el acceso a los miembros se realiza directamente sobre la
clase, y no sobre ninguna instancia. De hecho, las clases
estáticas, no deberían tener ningún método constructor de
instancias.

Como aplicación para esta diferencia, la clase singleton
permitirá polimorfismo, mientras que la clase estática
no. Las instancias pueden ser pasadas como parámetros del
tipo de una base o interface común, imposible en una
clase estática. Los miembros de instancia son virtuales
de forma predeterminada, mientras que los de clase, son
siempre estáticos.

Realmente hay ocasiones en las que es necesario aplicar
Singleton. Un caso típico sería el empleo de un
formulario único de una clase. En este caso, puesto que
Form ya es una clase con miembros de instancia, no se
podría utilizar como clase estática, es necesaria una
instancia de formulario.

En el resto de los casos, yo utilizaría clases estáticas.
Respuesta Responder a este mensaje
#5 Leonardo Azpurua
10/11/2004 - 14:36 | Informe spam
"Tristan" escribió en el mensaje
news:57af01c4c714$ca3aeff0$
Como aplicación para esta diferencia, la clase singleton
permitirá polimorfismo, mientras que la clase estática
no. Las instancias pueden ser pasadas como parámetros del
tipo de una base o interface común, imposible en una
clase estática. Los miembros de instancia son virtuales
de forma predeterminada, mientras que los de clase, son
siempre estáticos.



Hola

Fíjate tu por dónde. Jamás pensé en un Singleton polimórfico, pero tiene
sentido.

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