VB.NET - PowerPoint PPT Presentation

About This Presentation
Title:

VB.NET

Description:

... As Double ' Declara variable ... CalcSum(ByVal ParamArray Args() As Double) As Double. Dim I As Integer ... ReturnedValue As Double. ReturnedValue = CalcSum(4, ... – PowerPoint PPT presentation

Number of Views:282
Avg rating:3.0/5.0
Slides: 39
Provided by: paco7
Category:
Tags: net | dbl

less

Transcript and Presenter's Notes

Title: VB.NET


1
VB.NET
  • Dr. Diego Lz. de Ipiña Gz. de Artaza
  • http//paginaspersonales.deusto.es/dipina

2
El lenguaje VB.NET
  • En Visual Basic, un programa tiene los bloques
    estándar en todo programa.
  • El código de Visual Basic se guarda en módulos de
    proyecto
  • Proyecto se compone de ficheros que se compilan
    en una aplicación
  • Todo código en VB.NET debe seguir la siguiente
    secuencia
  • Sentencias Option
  • Sentencias Imports
  • Procedimiento Main
  • Sentencias Class, Module, y Namespace
  • Además un programa puede contener sentencias de
    compilación condicionales.
  • Si el código introducido no sigue este orden se
    producen errores de compilación.

3
Sentencias Option I
  • Establecen reglas para el código subsiguiente,
    ayudando a prevenir errores sintácticos y de
    lógica
  • La sentencia Option Explicit asegura que todas
    las variables están declaradas y escritas
    correctamente
  • Evita que todas las variables declaradas sean de
    tipo Object
  • Las variables se declaran usando Dim, Private,
    Public, or ReDim
  • Option Explicit On Fuerza la declaración
    explícita de variables
  • Dim MyVar As Integer ' Declara variable.
  • MyInt 10 Genera error al no estar la variable
    declarada
  • MyVar 10 ' Variable declarada por lo que no
    genera error

4
Sentencias Option II
  • La sentencia Option Strict ayuda a prevenir
    errores lógicos y de perdida de datos que ocurren
    cuando se trabaja con variables de diferente
    tipo.
  • Prohíbe conversiones implícitas
  • Option Strict On Fuerza a declarar variables
    también
  • Dim MyVar As Integer ' Declara variables.
  • MyVar 1000 '
  • Intento de convertir Integer a float genera
    error
  • MyVar 1234567890.987654321

5
Sentencias Option III
  • La sentencia Option Compare establece la manera
    en la que los strings son comparados, por formato
    binario (basado en la representación binaria
    interna de los datos) o textual (case
    insensitive).
  • Establece el modo de comparación a binario
  • Option Compare Binary ' Esto es, "AAA" es menor
    que "aaa".
  • ' Establece el modo de comparación a textual
  • Option Compare Text ' Esto es, "AAA" es igual a
    "aaa"

6
Sentencias Imports
  • Permiten nombrar clases y otros tipos definidos
    en los espacios de nombres importados (o
    assemblies) sin tener que especificar el cámino
    absoluto a ellas.
  • Imports aliasname namespace o
  • Imports aliasname namespace.element
  • Si no se especifica alias los elementos definidos
    en el namespace se referencian sin prefijo y si
    no prefijados con el alias
  • Se pueden especificar varios Imports en un
    programa y deben de aparecer antes de las
    sentencias Module y Class
  • Imports Str Microsoft.VisualBasic.Strings
  • ' Coloca Imports al comienzo de tu programa
  • Class MyClass1
  • Sub ShowHello()
  • MsgBox(Str.Left(Hola", 5)) ' Visualiza
    "Hola"
  • End Sub
  • End Class

7
Procedimiento Main
  • Punto de comienzo" de una aplicación el primer
    procedimiento accedido cuando ejecutas tu código.
  • Algunas de las tareas que puedes llevar a cabo
    dentro del código del Main
  • Cargar un formulario
  • Averiguar si alguna copia de tu programa existe
  • Abrir una conexión a una base de datos
  • Cuatro variedades
  • Sub Main() ? la más común
  • Sub Main(ByVal CmdArgs() As String)
  • Function Main() As Integer
  • Function Main(ByVal CmdArgs() As String) As
    Integer

8
Sentencias Class, Module y Namespace
  • La mayoría del código de un aplicación VB lo
    definen las clases y los módulos
  • Contienen sentencias
  • Sub
  • Function
  • Event
  • Declaraciones de variables y otras partes del
    código necesarias para hacer que tu aplicación se
    ejecute.

9
Sentencia Class I
  • Declara el nombre de una clase, así como la
    definición de variables, propiedades, eventos y
    métodos que la componen
  • ltattrlistgt  Public  Private  Protected 
    Friend  Protected Friend   Shadows 
    MustInherit  NotInheritable 
  • Class name
  •  Inherits classname 
  •  Implements interfacenames
  • statements
  • End Class

10
Sentencia Class II
  • Public ? sin restricciones de acceso
  • Private ? entidad accesible sólo en contexto en
    que es declarada
  • Protected ? accesible dentro de una clase o en
    hija de ella
  • Friend ? accesible sólo dentro del programa que
    contiene la declaración de la entidad
  • MustInherit ? no se pueden crear instancias de
    esta clase
  • NotInheritable ? no se permite más herencia
  • name ? nombre de la clase
  • Inherits ? esta clase deriva de classname
  • classname ? (requerido) nombre de la clase de la
    que deriva
  • Implements ? esta clase implementa una interfaz
  • interfacename ? nombre de la interfaz derivada

11
Sentencia Class III
  • statements ? variables, propiedades, eventos y
    métodos dentro de la clase
  • End Class ? termina un bloque de clase
  • Cada atributo en attrlist tiene la siguiente
    sintáxis y partes
  • attrname ( attrargs attrinit ), attrlist
    Parts
  • attrname ? (requerido) nombre del atributo
  • attrargs ? (optional) lista de argumentos del
    atributo
  • attrinit ? (opcional) lista de campos o
    propiedades para inicializar el atributo, si hay
    varios separados por comas

12
Sentencia Class IV
  • Clases sin modificador de acceso son declaradas
    Friend por defecto
  • Todo elemento dentro de una clase es por defecto
    público (métodos) excepto campos y constantes que
    son privados
  • Ejemplos
  • Public Class ThisClass
  • ' declaración de variable, propiedad, método y
    eventos
  • End Class

13
Ejemplos declaración clases
  • Ejemplo simple herencia
  • Public Class ThisClass
  • Inherits AnotherClass
  • ' Añade código para sobreescribir, sobrecargar
    o extender miembros
  • ' hereda de AnotherClass.
  • ...' Declaraciones de variable, propiedad,
    método, y eventos
  • End Class

14
Declaración de Propiedad
ltattrlistgt Default Public Private
Protected  Friend  Protected Friend  _
ReadOnly  WriteOnly  Overloads Overrides
_ Overridable NotOverridable MustOverride
Shadows Shared _ Property varname( ByVal
parameter list ) As typename
 Implements interfacemember  ltattrlistgt Get
block End Get ltattrlistgt Set(ByVal
value As typename ) block End Set End
Property
15
Declaración de variable
  • Dim ? se usa para declarar espacio de
    almacenamiento para variables
  • Ejemplos de uso
  • Dim AnyValue, MyValue As Object
  • ' Los números se inicializan por defecto a 0.
  • Dim Number As Integer
  • Dim FirstNumber, SecondNumber, ThirdNumber As
    Integer
  • Dim MyDate As Date, MyValue As Single, MySwitch
    As Boolean
  • ' DayArray es un array de 51 Objects indexados de
    0 a 50.
  • Dim DayArray(50) As Object
  • ' Matrix2 es un array bidimensional de tipo
    entero
  • Dim Matrix2(3, 4) As Integer

16
Declaración de constantes
  • Const ? define constantes
  • Ejemplos de uso
  • Const MyConst As Integer 459
  • ' Declara una constante pública de tipo string
  • ' disponible sólo a nivel de clase
  • Public Const MyString As String "HELP"
  • ' Declara una constante privada de tipo Integer
  • Private Const MyInt As Integer 5

17
Sentencias If
  • Sintáxis
  • If condition Then
  • statements
  • ElseIf elseifcondition Then
  • elseifstatements
  • Else
  • elsestatements
  • End If ó
  • If condition Then statements Else
    elsestatements

18
Ejemplo If
Dim Number, Digits As Integer Dim MyString As
String Number 53 ' Inicializa variable. If
Number lt 10 Then Digits 1 ElseIf Number lt
100 Then Digits 2 Else Digits 3 End If
If Digits 1 Then MyString "One" Else
MyString "More than one"
19
Sentencia Select Case
Dim Number As Integer 8 Select Number ' Evalúa
número. Case 1 To 5 ' Número entre 1 y 5
Debug.WriteLine(Entre 1 y 5") Case 6, 7, 8 '
Número entre 6 y 8 Debug.WriteLine(Entre 6
y 8") Case 9 To 10 ' Número entre 9 y 10
Debug.WriteLine(Mayor que 8") Case Else '
Otros valores Debug.WriteLine(No entre 1 y
10") End Select
20
Sentencias iterativas (While)
Dim Counter As Integer 0 While Counter lt 20
Evaluar el valor de Counter. Counter 1 '
Incrementar Counter. End While ' Finalizar
cuando counter20 Debug.WriteLine (Counter) '
Imprime 20
21
Sentencias iterativas (For)
Dim Words, Digit As Integer Dim MyString As
String For Words 10 To 1 Step -1 ' Realizar 10
repeticiones For Digit 0 To 9 ' Otras 10
MyString MyString CStr(Digit) 'Añadir
num a string Next Digit ' Incrementar
counter MyString MyString " " ' Añadir un
space. Next Words
22
Excepciones I
Module Test Sub F() Try G()
Catch e As Exception
Console.WriteLine("Exception in F "
e.Message) e New Exception("F")
' Relanzar excepción. Throw e
End Try End Sub
23
Excepciones II
Sub G() Throw New Exception("G") End
Sub Sub Main() Try F()
Catch e As Exception Console.WriteLine("E
xception in Main " e.Message) End Try
End Sub End Module
24
Delegates
Delegate Function DoubleFunc(x As Double) As
Double Class A Private f As New
DoubleFunc(AddressOf Square) Overloads Shared
Function Square(x As Single) As Single Return
x x End Function Overloads Shared
Function Square(x As Double) As Double Return
x x End Function End Class
25
Eventos
Public Class EventSource ' Declara un evento
Public Event LogonCompleted(ByVal UserName As
String) Sub CauseEvent() ' Lanza un
evento después de login correcto.
RaiseEvent LogonCompleted(Deusto") End
Sub End Class
26
Ejemplo complejo clases I
Interface ICustomerInfo ' Declaración de una
interfaz Property CustomerName() As String
Sub UpdateCustomerStatus() Event
UpdateComplete() End Interface
27
Ejemplo complejo clases II
Public Class CustomerInfo ' CustomerInfo
implementa interfaz IcustomerInfo Implements
ICustomerInfo Private CustomerNameValue As
String ' Para guardar el valor de la propiedad
Public Event UpdateComplete() Implements
ICustomerInfo.UpdateComplete Public Property
CustomerName() As String Implements _
ICustomerInfo.CustomerName Get
Return CustomerNameValue End Get
Set(ByVal Value As String)
CustomerNameValue Value ' Guarda el valor del
atributo. End Set End Property Public
Sub UpdateCustomerStatus() Implements _
ICustomerInfo.UpdateCustomerStatus ' Añadir
código para modificar estado cuenta '
Lanzar evento para indicar que este método se ha
ejecutado. RaiseEvent UpdateComplete()
End Sub End Class
28
Ejemplo complejo clases III
Métodos para probar clase Public Sub
TestImplements() Dim Cust As New
CustomerInfo() ' Asociar manejador para
eventos lanzados por objeto Cust AddHandler
Cust.UpdateComplete, AddressOf HandleUpdateComplet
e ' Asignar valor a la propiedad CustomerName
Cust.CustomerName Diego" ' Recuperar y
visualizar valor propiedad MsgBox(Nombre
cliente " Cust.CustomerName) ' Invoca
UpdateCustomerStatus para lanzar evento
UpdateComplete event. Cust.UpdateCustomerStatus
() End Sub
29
Ejemplo complejo clases IV
Sub HandleUpdateComplete() ' Manejador de
evento para UpdateComplete. MsgBox(Actualizaci
ón completada.") End Sub
30
Sentencia Namespace
  • Declara el nombre de un espacio de nombres
  • Namespace name name.name
  • componenttypes
  • End Namespace
  • componenttypes contiene enumeraciones,
    estructuras, interfaces, clases, módulos,
    delegates y otros espacios de nombres
  • similares a paquetes en Java

31
Ejemplo Namespaces
  • Declaración namespaces anidados
  • Namespace N1 ' Declara espacio de nombres N1.
  • Namespace N2 ' Declara espacio de nombres N2
    dentro de N1.
  • Class A ' Declara una clase dentro de
    N1.N2.
  • ' Añade una clase.
  • End Class
  • End Namespace
  • End Namespace
  • Lo mismo en una sola línea
  • Namespace N1.N2 ' Declara dos espacios de
    nombres N1 y N2.
  • Class A ' Declara una clase dentro de N1.N2.
  • ' Añade una clase aquí.
  • End Class
  • End Namespace

32
Procedimientos con Sub I
 ltattrlistgt  Overloads Overrides
Overridable  NotOverridable  MustOverride 
Shadows Shared Public Protected
Friend Protected Friend  Private  Sub name
(arglist)  Implements interface.definedname 
statements Exit Sub statements
End Sub
33
Procedimientos con Sub II
  • Lista de atributos de este procedimiento
  • Overloads ? Este procedimiento (método)
    sobrecarga otro declarado en una clase base
  • Overrides ? sobreescribe método de clase base
  • Overridable/NotOverridable ? método puede NO
    ser sobrecargado
  • MustOverride ? método es abstracto, debe ser
    sobreescrito por clase que deriva
  • Cada argumento en arglist tiene el siguiente
    formato
  •  ltattrlistgt  Optional ByVal  ByRef 
     ParamArray  argname( )  As argtype 
      defaultvalue 

34
Ejemplo Sub
' Procedure Sub procedure con dos argumentos. Sub
SubComputeArea(ByVal Length As Double, ByVal
Width As Double) Dim Area As Double '
Declara variable local. If Length 0 Or
Width 0 Then ' Si algún argumento es 0,
salir del procedure Exit Sub ' Exit Sub
immediately. equivalente a Return End If
Area Length Width ' Calcula área del
rectángulo. Debug.WriteLine(Area) '
Imprime valor de área. End Sub
35
Sentencia Function
  • Sintáxis similar a Sub pero devuelve un valor
  • ' Procedure Sub con dos argumentos.
  • Public Function CalcSum(ByVal ParamArray Args()
    As Double) As Double
  • Dim I As Integer
  • CalcSum 0
  • If Args.Length lt 0 Then Exit Function ' No se
    han pasado args.
  • For I 0 To UBound(Args, 1)
  • CalcSum Args(I)
  • Next I
  • End Function ' Devuelve último valor de CalcSum.
  • La función puede ser llamada como
  • Dim ReturnedValue As Double
  • ReturnedValue CalcSum(4, 3, 2, 1)
  • ' Args(0) 4, Args(1) 3, and so on.

36
Sentencias de compilación condicional
  • Pueden aparecer en cualquier lugar en un módulo.
  • Se ejecutan si ciertas condiciones se cumplen
  • Se pueden también usar para hacer debugging de tu
    aplicación, es la única situación en la que se
    ejecutan.

37
Hola Mundo en VB.NET
' fichero hola.vb ' compilar vbc
hola.vb Imports System module Hello sub
main() Console.WriteLine(Hola desde
VB.NET) end sub end module
38
Compilando y ejecutando Hola Mundo
  • Para compilar y ejecutar desde línea de comando
  • Crear código fuente usando un editor de texto y
    llamarlo hola.vb.
  • Invocar el compilador, escribiendo el comando
    vbc hola.vb
  • Si no hay errores de compilación, el compilador
    genera el fichero hola.exe
  • Para ejecutar el comando escribir hola
Write a Comment
User Comments (0)
About PowerShow.com