Principales respuestas
Alcance de las variables

Pregunta
-
Tengo dudas acerca de como declarar variables en Visual NET. Estoy diseñando un formulario donde se tienen que cambiar el valor de una variable. Declaro la variable a nivel formulario:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim señal As Integer = 0
End SubLuego en el control textbox intento utilizo la variable
If señal = 0 Then ( aca me muestra el error "EL OPERADOR "=" NO ESTA DEFINIDO PARA LOS TIPOS 'SYSTEM.WINDOWS.FORMS.TEXTBOX Y INTEGER)
Private Sub importe_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles importe.KeyPress
señal = 1 ( Un valor de tipo integer no se puede convertir en SYSTEM.WINDOWS.FORMS.TEXTBOX)
End If
También intente agregar un módulo al proyecto, como hacia en visual basic, pero tampoco funciona. No encontre bibliografía donde aclarar dudas. Gracias
Respuestas
-
Excelente! Clarisimo. Si podes orientarme acerca de algun libro o bibliografia de BV.NET te agradecería, yo utilizaba Visual Basic y cambia un poco. Me interesaría ver desde cero el lenguaje, porque muchas veces te perdes de buen contenido buscando solo lo que necesitas en un momento. Muchas gracias por responder. saludos!
- Marcado como respuesta gssosa jueves, 2 de abril de 2020 12:54
Todas las respuestas
-
Declaro la variable a nivel formulario:
No, ese código que muestras NO declara la variable a nivel formulario. La declara dentro de un método que está dentro del formulario. Cuando la declaras dentro de un método, el alcance es solo ese método, no se puede ver desde ningún otro método. El hecho de que ese método resulte ser el Load del formulario es completamente irrelevante a efectos de alcance de las variables.
Para declararla a nivel de formulario, sácala del método y pon la declaración dentro de la clase.
Public Class MiFormulario Inherits Form Private señal As Integer 'Aquí tus métodos End Class
También intente agregar un módulo al proyecto, como hacia en visual basic, pero tampoco funciona
Un módulo en VB.NET se compila igual que si hubieras declarado una clase estática. Funciona, pero tienes que llamarlo anteponiendo el nombre de la clase al nombre de la variable. Pero ojo, eso te da un alcance global a todo el proyecto; no sería un alcance a nivel de formulario.
- Propuesto como respuesta Óscar NavarroModerator miércoles, 1 de abril de 2020 12:49
-
Hola
Para declarar variables, debes de saber que hay 3 formas de hacerlo (quizá más) pero te indico cuales son y las 3 que uso:
Variables a nivel método o proceso
Esta variable la declaras para trabajar dentro de un método y solo ahí es donde tendrás acceso a la variable, mas no podrás usar o llamarla desde otro lugar o proceso.
La siguiente variable Var_Metodo la declare dentro del LOAD del formulario y solo ahi podré usarla
Variables a nivel de formulario
Esta variable la declaras para trabajar dentro de todo un formulario y puedes hacer uso dentro de cualquier método que este en este formulario.
La variable Var_Formulario la declaro al inicio, antes de cualquier método, incluso antes del LOAD del formulario y la usaré si necesito desde cualquier método que esté dentro del formulario.
Variables a nivel de proyecto
Esta variable la declaras para hacer uso desde cualquier método, también desde cualquier formulario, incluso desde módulos y clases que se creen en el proyecto.
La variable Var_Proyecto la he declarado dentro de un módulo llamado MODVARIABLES, y para que sea accesible desde cualquier lugar del proyecto, la declaración cambia de DIM por PUBLIC
Ojala te sirva la orientación
Saludos
-
Excelente! Clarisimo. Si podes orientarme acerca de algun libro o bibliografia de BV.NET te agradecería, yo utilizaba Visual Basic y cambia un poco. Me interesaría ver desde cero el lenguaje, porque muchas veces te perdes de buen contenido buscando solo lo que necesitas en un momento. Muchas gracias por responder. saludos!
- Marcado como respuesta gssosa jueves, 2 de abril de 2020 12:54