+ All Categories

VB.NET

Date post: 21-Mar-2016
Category:
Upload: nicki
View: 58 times
Download: 1 times
Share this document with a friend
Description:
VB.NET. Dr. Diego Lz. de Ipiña Gz. de Artaza http://paginaspersonales.deusto.es/dipina. 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 - PowerPoint PPT Presentation
38
VB.NET Dr. Diego Lz. de Ipiña Gz. de Artaza http://paginaspersonales.deusto. es/dipina
Transcript
Page 1: VB.NET

VB.NET

Dr. Diego Lz. de Ipiña Gz. de Artazahttp://paginaspersonales.deusto.es/dipina

Page 2: 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.

El lenguaje VB.NET

Page 3: VB.NET

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 variablesDim MyVar As Integer ' Declara variable.MyInt = 10 ‘ Genera error al no estar la variable declaradaMyVar = 10 ' Variable declarada por lo que no genera error

Sentencias Option I

Page 4: VB.NET

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énDim MyVar As Integer ' Declara variables.MyVar = 1000 '‘ Intento de convertir Integer a float genera errorMyVar = 1234567890.987654321

Sentencias Option II

Page 5: VB.NET

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 binarioOption Compare Binary ' Esto es, "AAA" es menor que "aaa".' Establece el modo de comparación a textualOption Compare Text ' Esto es, "AAA" es igual a "aaa"

Sentencias Option III

Page 6: VB.NET

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 oImports [ 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 ClassImports Str = Microsoft.VisualBasic.Strings' Coloca Imports al comienzo de tu programaClass MyClass1 Sub ShowHello() MsgBox(Str.Left(“Hola", 5)) ' Visualiza "Hola" End SubEnd Class

Sentencias Imports

Page 7: VB.NET

“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

Procedimiento Main

Page 8: VB.NET

La mayoría del código de un aplicación VB lo definen las clases y los módulosContienen sentencias:

Sub Function Event Declaraciones de variables y otras partes del

código necesarias para hacer que tu aplicación se ejecute.

Sentencias Class, Module y Namespace

Page 9: VB.NET

Declara el nombre de una clase, así como la definición de variables, propiedades, eventos y métodos que la componen

[ <attrlist> ] [ Public | Private | Protected | Friend | Protected Friend ] [ Shadows ] [ MustInherit | NotInheritable ]

Class name [ Inherits classname ] [ Implements interfacenames ] [ statements ]

End Class

Sentencia Class I

Page 10: VB.NET

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

Sentencia Class II

Page 11: VB.NET

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

Sentencia Class III

Page 12: VB.NET

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

Sentencia Class IV

Page 13: VB.NET

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 eventosEnd Class

Ejemplos declaración clases

Page 14: VB.NET

[ <attrlist> ] [ 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 ] [ <attrlist> ] Get [ block ] End Get [ <attrlist> ] Set(ByVal value As typename ) [ block ] End Set

End Property

Declaración de Propiedad

Page 15: VB.NET

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 IntegerDim FirstNumber, SecondNumber, ThirdNumber As IntegerDim 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 enteroDim Matrix2(3, 4) As Integer

Declaración de variable

Page 16: VB.NET

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 clasePublic Const MyString As String = "HELP"' Declara una constante privada de tipo IntegerPrivate Const MyInt As Integer = 5

Declaración de constantes

Page 17: VB.NET

Sintáxis:If condition [ Then ] [ statements ] [ ElseIf elseifcondition [ Then ] [ elseifstatements ] ] [ Else [ elsestatements ] ] End If óIf condition Then [ statements ] [ Else elsestatements ]

Sentencias If

Page 18: VB.NET

Dim Number, Digits As IntegerDim MyString As StringNumber = 53 ' Inicializa variable.If Number < 10 Then Digits = 1ElseIf Number < 100 ThenDigits = 2Else Digits = 3End If If Digits = 1 Then MyString = "One" Else MyString = "More

than one"

Ejemplo If

Page 19: VB.NET

Dim Number As Integer = 8Select 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

Sentencia Select … Case

Page 20: VB.NET

Dim Counter As Integer = 0While Counter < 20 ‘ Evaluar el valor de Counter.

Counter += 1 ' Incrementar Counter.End While ' Finalizar cuando counter=20Debug.WriteLine (Counter) ' Imprime 20

Sentencias iterativas (While)

Page 21: VB.NET

Dim Words, Digit As IntegerDim MyString As StringFor 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

Sentencias iterativas (For)

Page 22: VB.NET

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

Excepciones I

Page 23: VB.NET

Sub G() Throw New Exception("G") End Sub Sub Main() Try F() Catch e As Exception Console.WriteLine("Exception in Main: " &

e.Message) End Try End SubEnd Module

Excepciones II

Page 24: VB.NET

Delegate Function DoubleFunc(x As Double) As DoubleClass 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

Delegates

Page 25: VB.NET

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 SubEnd Class

Eventos

Page 26: VB.NET

Interface ICustomerInfo ' Declaración de una interfaz Property CustomerName() As String Sub UpdateCustomerStatus() Event UpdateComplete()End Interface

Ejemplo complejo clases I

Page 27: VB.NET

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 SubEnd Class

Ejemplo complejo clases II

Page 28: VB.NET

‘ Métodos para probar clasePublic Sub TestImplements() Dim Cust As New CustomerInfo() ' Asociar manejador para eventos lanzados por objeto Cust AddHandler Cust.UpdateComplete, AddressOf HandleUpdateComplete ' 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

Ejemplo complejo clases III

Page 29: VB.NET

Sub HandleUpdateComplete() ' Manejador de evento para UpdateComplete. MsgBox(“Actualización completada.")End Sub

Ejemplo complejo clases IV

Page 30: VB.NET

Declara el nombre de un espacio de nombresNamespace { 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

Sentencia Namespace

Page 31: VB.NET

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 ClassEnd Namespace

Ejemplo Namespaces

Page 32: VB.NET

[ <attrlist> ] [{ 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

Procedimientos con Sub I

Page 33: VB.NET

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:[ <attrlist> ] [ Optional ] [{ ByVal | ByRef }]

[ ParamArray ] argname[( )] [ As argtype ] [ = defaultvalue ]

Procedimientos con Sub II

Page 34: VB.NET

' 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

Ejemplo Sub

Page 35: VB.NET

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 <= 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.

Sentencia Function

Page 36: VB.NET

Pueden aparecer en cualquier lugar en un módulo. Se ejecutan si ciertas condiciones se

cumplenSe pueden también usar para hacer

debugging de tu aplicación, es la única situación en la que se ejecutan.

Sentencias de compilación condicional

Page 37: VB.NET

Hola Mundo en VB.NET' fichero: hola.vb' compilar: vbc hola.vbImports System

module Hellosub main()Console.WriteLine(“Hola desde VB.NET”)end sub

end module

Page 38: VB.NET

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

Compilando y ejecutando Hola Mundo


Recommended