Visual Basic - diferencias entre Dim y Static

Publicado en 'Programación' por anthony23, 16 Abr 2016.





  1. anthony23

    anthony23 Miembro maestro

    Registro:
    5 Dic 2015
    Mensajes:
    337
    Likes:
    13




    Visual Basic - diferencias entre Dim y Static
     


  2. n00b

    n00b Miembro frecuente

    Registro:
    12 Dic 2015
    Mensajes:
    134
    Likes:
    48
    uuufff, esa es una bonita pregunta y entenderla bien requiere un conocimiento un poco más avanzado.
    La respuesta corta y simplificada:
    Primero que nada, la palabra reservada Static también lo encuentras en otros lenguajes, por ejemplo C#, sin embargo lo que significa Static, es decir cómo se comporta, en esos otros lenguajes es diferente a lo que significa para VB.Net, el equivalente del Static de los otros lenguajes en VB.Net es la palabra reservada Shared.
    Dim es la palabra reservada que se usa para declarar una variable. Al parecer viene de lenguajes más viejos y significa "Dimension" o también, más claro, "Declare In Memory" (declarar en la memoria). Lo que hace Dim es decirle "separa un espacio de memoria para la variable que viene a continuación" (la variable miVariable de tipo String en este caso) :
    Dim miVariable As String
    En resumen, Dim se usa para declarar una variable. Pero una variable, como los demás miembros tienen un Scope (es decir lo que define su accesibilidad), por ejemplo si declaras una variable de clase entonces lapuedes usar en cualquiera de los métodos de la clase, es decir compartirás esa variable (no confundir con las variables shared). Si en cambio declaras una variable dentro de un método, esta variable se llama variable local y solo tienes acceso a ella dentro del método y se inicializa cada vez que llamas al método, es decir no conserva el valor. Cuando declaras una variable local usando Static entonces el valor se mantiene y funciona como las variables shared aunque no son lo mismo).
    Tarea:
    ¿Cuáles son los miembros de una clase?
    ¿Cómo se instancia una clase?
    ¿Diferencia entre clase y objeto?
    Mas tarea:
    Instance members (miembros de instancia)
    Shared members (miembros compartidos) (en c# miembros estáticos, y en java miembros de clase)
    Más tarea:
    Value types (Tipos de Valor)
    Reference types (Tipos de Referencia)
    Más tarea:
    Boxing y Unboxing
    ...
     
    Última edición: 17 Abr 2016
    A anthony23 y San Diablo les gustó este mensaje.
  3. billytalent

    billytalent Miembro de oro

    Registro:
    27 Ago 2015
    Mensajes:
    7,428
    Likes:
    1,059
    http://bfy.tw/5JPy :yeah:
     
  4. Epikurolibre

    Epikurolibre Miembro de plata

    Registro:
    3 Oct 2010
    Mensajes:
    2,675
    Likes:
    819
    Tan fácil que es verlo en google.
     
    A usb le gustó este mensaje.