Intro Visudddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal II

38
 VB.NET ING. CARLOS UCAÑAY CHANCAFE

description

ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

Transcript of Intro Visudddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal II

  • VB.NETING. CARLOS UCAAY CHANCAFE

  • En Visual Basic, un programa tiene los bloques estndar en todo programa.El cdigo de Visual Basic se guarda en mdulos de proyectoProyecto se compone de ficheros que se compilan en una aplicacinTodo cdigo en VB.NET debe seguir la siguiente secuencia:Sentencias OptionSentencias ImportsProcedimiento MainSentencias Class, Module, y NamespaceAdems un programa puede contener sentencias de compilacin condicionales.Si el cdigo introducido no sigue este orden se producen errores de compilacin.El lenguaje VB.NET

  • Establecen reglas para el cdigo subsiguiente, ayudando a prevenir errores sintcticos y de lgicaLa sentencia Option Explicit asegura que todas las variables estn declaradas y escritas correctamenteEvita que todas las variables declaradas sean de tipo ObjectLas variables se declaran usando Dim, Private, Public, or ReDim

    Option Explicit On Fuerza la declaracin explcita 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

  • La sentencia Option Strict ayuda a prevenir errores lgicos y de perdida de datos que ocurren cuando se trabaja con variables de diferente tipo.Prohbe conversiones implcitas

    Option Strict On Fuerza a declarar variables tambinDim MyVar As Integer ' Declara variables.MyVar = 1000 ' Intento de convertir Integer a float genera errorMyVar = 1234567890.987654321Sentencias Option II

  • La sentencia Option Compare establece la manera en la que los strings son comparados, por formato binario (basado en la representacin binaria interna de los datos) o textual (case insensitive).

    Establece el modo de comparacin a binarioOption Compare Binary ' Esto es, "AAA" es menor que "aaa".' Establece el modo de comparacin a textualOption Compare Text ' Esto es, "AAA" es igual a "aaa"

    Sentencias Option III

  • Permiten nombrar clases y otros tipos definidos en los espacios de nombres importados (o assemblies) sin tener que especificar el cmino 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 aliasSe 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

  • Punto de comienzo" de una aplicacin el primer procedimiento accedido cuando ejecutas tu cdigo.Algunas de las tareas que puedes llevar a cabo dentro del cdigo del Main:Cargar un formularioAveriguar si alguna copia de tu programa existeAbrir una conexin a una base de datosCuatro variedades: Sub Main() la ms comnSub Main(ByVal CmdArgs() As String) Function Main() As Integer Function Main(ByVal CmdArgs() As String) As Integer Procedimiento Main

  • La mayora del cdigo de un aplicacin VB lo definen las clases y los mdulosContienen sentencias: Sub Function Event Declaraciones de variables y otras partes del cdigo necesarias para hacer que tu aplicacin se ejecute.Sentencias Class, Module y Namespace

  • Declara el nombre de una clase, as como la definicin de variables, propiedades, eventos y mtodos que la componen

    [ ] [Public| Private| Protected| Friend| Protected Friend] [Shadows] [ MustInherit| NotInheritable] Classname [Inherits classname] [Implements interfacenames ] [ statements ]End Class

    Sentencia Class I

  • Public sin restricciones de accesoPrivate entidad accesible slo en contexto en que es declaradaProtected accesible dentro de una clase o en hija de ellaFriend accesible slo dentro del programa que contiene la declaracin de la entidadMustInherit no se pueden crear instancias de esta claseNotInheritable no se permite ms herencianame nombre de la claseInherits esta clase deriva de classnameclassname (requerido) nombre de la clase de la que derivaImplements esta clase implementa una interfazinterfacename nombre de la interfaz derivadaSentencia Class II

  • statements variables, propiedades, eventos y mtodos dentro de la claseEnd Class termina un bloque de claseCada atributo en attrlist tiene la siguiente sintxis y partes:attrname [({ attrargs | attrinit })], attrlist Partsattrname (requerido) nombre del atributoattrargs (optional) lista de argumentos del atributoattrinit (opcional) lista de campos o propiedades para inicializar el atributo, si hay varios separados por comas

    Sentencia Class III

  • Clases sin modificador de acceso son declaradas Friend por defectoTodo elemento dentro de una clase es por defecto pblico (mtodos) excepto campos y constantes que son privadosEjemplos:Public Class ThisClass ' [declaracin de variable, propiedad, mtodo y eventos]End Class

    Sentencia Class IV

  • Ejemplo simple herencia:

    Public Class ThisClass Inherits AnotherClass ' Aade cdigo para sobreescribir, sobrecargar o extender miembros ' hereda de AnotherClass. ...' Declaraciones de variable, propiedad, mtodo, y eventosEnd Class

    Ejemplos declaracin clases

  • [ ] [ Default ] [ Public | Private | Protected| Friend| Protected Friend] _ [[ ReadOnly| WriteOnly] [ Overloads | Overrides ] _ [ Overridable | NotOverridable ] | MustOverride | Shadows | Shared ] _ Propertyvarname([ ByVal parameter list ]) [ As typename ] [Implementsinterfacemember] [ ] Get [ block ] End Get [ ] Set(ByVal value As typename ) [ block ] End Set End Property Declaracin de Propiedad

  • Dim se usa para declarar espacio de almacenamiento para variablesEjemplos de uso:

    Dim AnyValue, MyValue As Object' Los nmeros 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

    Declaracin de variable

  • Const define constantesEjemplos de uso:

    Const MyConst As Integer = 459' Declara una constante pblica de tipo string' disponible slo a nivel de clasePublic Const MyString As String = "HELP"' Declara una constante privada de tipo IntegerPrivate Const MyInt As Integer = 5

    Declaracin de constantes

  • Sintxis:If condition [ Then ] [ statements ] [ ElseIf elseifcondition [ Then ] [ elseifstatements ] ] [ Else [ elsestatements ] ] End If If condition Then [ statements ] [ Else elsestatements ] Sentencias If

  • 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

  • Dim Number As Integer = 8Select Number ' Evala nmero. Case 1 To 5 ' Nmero entre 1 y 5 Debug.WriteLine(Entre 1 y 5") Case 6, 7, 8 ' Nmero entre 6 y 8 Debug.WriteLine(Entre 6 y 8") Case 9 To 10 ' Nmero entre 9 y 10 Debug.WriteLine(Mayor que 8") Case Else ' Otros valores Debug.WriteLine(No entre 1 y 10")End SelectSentencia Select Case

  • 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)

  • 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) 'Aadir num a string Next Digit ' Incrementar counter MyString = MyString & " " ' Aadir un space.Next Words

    Sentencias iterativas (For)

  • Module Test Sub F() Try G() Catch e As Exception Console.WriteLine("Exception in F: " & e.Message) e = New Exception("F") ' Relanzar excepcin. Throw e End Try End Sub Excepciones I

  • 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 ModuleExcepciones II

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

  • Public Class EventSource ' Declara un evento Public Event LogonCompleted(ByVal UserName As String) Sub CauseEvent() ' Lanza un evento despus de login correcto. RaiseEvent LogonCompleted(Deusto") End SubEnd ClassEventos

  • Interface ICustomerInfo ' Declaracin de una interfaz Property CustomerName() As String Sub UpdateCustomerStatus() Event UpdateComplete()End Interface

    Ejemplo complejo clases I

  • 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 ' Aadir cdigo para modificar estado cuenta ' Lanzar evento para indicar que este mtodo se ha ejecutado. RaiseEvent UpdateComplete() End SubEnd ClassEjemplo complejo clases II

  • Mtodos 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

  • Sub HandleUpdateComplete() ' Manejador de evento para UpdateComplete. MsgBox(Actualizacin completada.")End SubEjemplo complejo clases IV

  • Declara el nombre de un espacio de nombresNamespace { name | name.name } [componenttypes ] End Namespace componenttypes contiene enumeraciones, estructuras, interfaces, clases, mdulos, delegates y otros espacios de nombres similares a paquetes en JavaSentencia Namespace

  • Declaracin 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. ' Aade una clase. End Class End Namespace End NamespaceLo mismo en una sola lnea:Namespace N1.N2 ' Declara dos espacios de nombres: N1 y N2. Class A ' Declara una clase dentro de N1.N2. ' Aade una clase aqu. End ClassEnd Namespace

    Ejemplo Namespaces

  • [] [{ Overloads | Overrides | Overridable| NotOverridable| MustOverride| Shadows | Shared }] [{ Public | Protected | Friend | ProtectedFriend| Private}] Sub name [(arglist)] [Implementsinterface.definedname] [ statements ] [ Exit Sub ] [ statements ] End Sub Procedimientos con Sub I

  • Lista de atributos de este procedimientoOverloads Este procedimiento (mtodo) sobrecarga otro declarado en una clase baseOverrides sobreescribe mtodo de clase baseOverridable/NotOverridable mtodo puede [NO] ser sobrecargadoMustOverride mtodo es abstracto, debe ser sobreescrito por clase que derivaCada argumento en arglist tiene el siguiente formato:[] [ Optional ] [{ ByVal| ByRef}] [ParamArray] argname[()] [Asargtype] [=defaultvalue]

    Procedimientos con Sub II

  • ' 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 algn argumento es 0, salir del procedure Exit Sub ' Exit Sub immediately. equivalente a Return End If Area = Length * Width ' Calcula rea del rectngulo. Debug.WriteLine(Area) ' Imprime valor de rea.End Sub

    Ejemplo Sub

  • Sintxis 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
  • Pueden aparecer en cualquier lugar en un mdulo. Se ejecutan si ciertas condiciones se cumplenSe pueden tambin usar para hacer debugging de tu aplicacin, es la nica situacin en la que se ejecutan.Sentencias de compilacin condicional

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

    module Hellosub main()Console.WriteLine(Hola desde VB.NET)end subend module

  • Para compilar y ejecutar desde lnea de comando:Crear cdigo fuente usando un editor de texto y llamarlo hola.vb. Invocar el compilador, escribiendo el comando: vbc hola.vbSi no hay errores de compilacin, el compilador genera el fichero hola.exePara ejecutar el comando escribir: hola

    Compilando y ejecutando Hola Mundo