Vous êtes sur la page 1sur 40

VISUAL BASIC GUA DE PROGRAMACIN EN VISUAL BASIC CONVENCIONES DE CDIGO Y ESTRUCTURA DE PROGRAMAS (VISUAL BASIC)

ESTRUCTURA DE UN PROGRAMA DE VISUAL BASIC VERSIN DE VISUAL BASIC DEL PROGRAMA HOLA A TODOS PROCEDIMIENTO MAIN EN VISUAL BASIC REFERENCIAS Y LA INSTRUCCIN IMPORTS (VISUAL BASIC) ESPACIOS DE NOMBRES EN VISUAL BASIC CONVENCIONES DE NOMENCLATURA DE VISUAL BASIC CONVENCIONES DE CDIGO DE VISUAL BASIC COMPILACIN CONDICIONAL EN VISUAL BASIC CMO: INTERRUMPIR Y COMBINAR INSTRUCCIONES EN CDIGO (VISUAL BASIC) CMO: CONTRAER Y OCULTAR SECCIONES DE CDIGO (VISUAL BASIC) CMO: APLICAR ETIQUETAS A LAS INSTRUCCIONES (VISUAL BASIC) CARACTERES ESPECIALES EN CDIGO (VISUAL BASIC) COMENTARIOS EN EL CDIGO (VISUAL BASIC)
o o CMO: AGREGAR UN COMENTARIO AL CDIGO (VISUAL BASIC) DOCUMENTAR EL CDIGO CON XML (VB) PROCESAR EL ARCHIVO XML (VISUAL BASIC) CMO: CREAR DOCUMENTACIN XML

PALABRAS CLAVE COMO NOMBRES DE ELEMENTOS EN CDIGO (VISUAL BASIC) ME, MY, MYBASE Y MYCLASS EN VISUAL BASIC LIMITACIONES DE VISUAL BASIC

Caractersticas del lenguaje Visual Basic Interoperabilidad COM (Visual Basic) Cmo: Actualizar un proyecto de Visual Basic

Convenciones de cdigo y estructura de programas (Visual Basic)


En esta seccin se introduce la estructura de programas de Visual Basic tpica, se proporciona un programa de Visual Basic sencillo ("Hello, World") y se describen las convenciones de cdigo de Visual Basic. Las convenciones de cdigo son sugerencias que no se centran en la lgica de un programa, sino en la apariencia y la estructura fsica. Si se cumplen, se facilita la lectura, la comprensin y el mantenimiento del cdigo. Las convenciones de cdigo pueden incluir, entre otras cosas: Formatos estandarizados para etiquetar y comentar cdigo. Instrucciones para agregar espacios, dar formato y aplicar sangra al cdigo. Convenciones de nomenclatura para objetos, variables y procedimientos.

Los temas siguientes presentan un conjunto de directrices de programacin para los programas de Visual Basic, junto con ejemplos de uso correcto.

ESTRUCTURA DE UN PROGRAMA DE VISUAL BASIC


Visual Studio 2010 Un programa de Visual Basic se crea a partir de bloques de creacin estndar. Una solucin consta de uno o varios proyectos. Un proyecto a su vez puede contener uno o ms ensamblados. Cada ensamblado se compila a partir de uno o varios archivos de cdigo fuente. El archivo de cdigo fuente proporciona la definicin e implementacin de clases, estructuras, mdulos e interfaces, que en ltima instancia contienen todo el cdigo. Para obtener ms informacin sobre estos bloques de creacin de un programa de Visual Basic, vea Introduccin a soluciones, proyectos y elementos1 y Ensamblados y cach global de ensamblados (C# y Visual Basic)2.

Elementos de programacin en el nivel de archivo


Al iniciar un proyecto o archivo y abrir el editor de cdigo, ver que ya hay cdigo en el lugar que le corresponde y en el orden correcto. Cualquier cdigo que escriba debe seguir la siguiente secuencia: 1. Instrucciones Option 2. Instrucciones Imports 3. Instrucciones Namespace y elementos del nivel de espacio de nombres Si escribe instrucciones en un orden distinto, pueden producirse errores de compilacin. Un programa tambin puede contener instrucciones de compilacin condicional. Pueden incluirse en el archivo de cdigo fuente entre las instrucciones de la secuencia anterior.

Instrucciones Option
Las instrucciones Option establecen reglas de base para el cdigo subsiguiente, y de esta forma ayudan a prevenir errores de sintaxis y de lgica. Option Explicit (Instruccin, Visual Basic)3 garantiza que se declaran todas las variables y que se escriben correctamente, lo que reduce el tiempo de depuracin. La instruccin Option Strict (Instruccin)4 ayuda a reducir errores de lgica y prdidas de datos que puedan producirse al trabajar entre variables de diferentes tipos de datos. Option Compare (Instruccin)5 especifica la manera en que se comparan las cadenas entre s, segn sus valoresBinary o Text.

Instrucciones Imports
Puede incluir Instruccin Imports (Tipo y espacio de nombres de .NET) 6 para importar nombres definidos fuera del proyecto. Las instrucciones Imports permiten que el cdigo haga referencia a clases y otros tipos definidos en el espacio de nombres importado sin tener que calificarlos. Puede utilizar tantas instrucciones Imports como sea necesario. Para obtener ms informacin, vea Referencias y la instruccin Imports (Visual Basic)7.

Instrucciones Namespace
Los espacios de nombres ayudan a organizar y clasificar los elementos de programacin para facilitar la agrupacin y el acceso. Utiliza Namespace (Instruccin)8 para clasificar las instrucciones siguientes dentro de un espacio de nombres determinado. Para obtener ms informacin, vea Espacios de nombres en Visual Basic9.

Instrucciones de compilacin condicional


Las instrucciones de compilacin condicional pueden aparecer prcticamente en cualquier parte del archivo de cdigo fuente. Determinan que partes del cdigo se incluyan o excluyan en tiempo de compilacin en funcin de ciertas condiciones. Tambin puede utilizarlas para depurar la aplicacin, ya que el cdigo condicional se ejecuta nicamente en modo de depuracin. Para obtener ms informacin, vea Compilacin condicional en Visual Basic10.

Elementos de programacin en el nivel de espacio de nombres


Las clases, estructuras y mdulos contienen todo el cdigo del archivo de cdigo fuente. Son elementos del nivel de espacio de nombres, que pueden aparecer dentro de un espacio de nombres o en el nivel del archivo de cdigo fuente.Contienen las declaraciones de todos los dems elementos de programacin. Las interfaces, que definen firmas de elemento pero no proporcionan ninguna implementacin, tambin aparecen en el nivel de mdulo. Para obtener ms informacin sobre los elementos del nivel de mdulo, vea los siguientes temas:

Instruccin Class (Visual Basic)11 Structure (Instruccin)12 Module (Instruccin)13 Instruccin Interface (Visual Basic)14

Los elementos de datos en el nivel de espacio de nombres son las enumeraciones y los delegados.

Elementos de programacin en el nivel de mdulo


Los procedimientos, operadores, propiedades y eventos son los nicos elementos de programacin que pueden contener cdigo ejecutable (instrucciones que realizan acciones en tiempo de ejecucin). Son elementos del nivel de mdulo del programa. Para obtener ms informacin sobre los elementos del nivel de procedimiento, vea los siguientes temas:

Function (Instruccin, Visual Basic)15 Sub (Instruccin, Visual Basic)16 Declare (Instruccin)17 Operator (Instruccin)18 Property (Instruccin)19 Event (Instruccin)20

Los elementos de datos en el nivel de mdulo son las variables, las constantes, las enumeraciones y los delegados.

Elementos de programacin en el nivel de procedimiento


La mayora del contenido de los elementos del nivel de procedimiento son instrucciones ejecutables, que constituyen el cdigo en tiempo de ejecucin del programa. Todo el cdigo ejecutable debe estar incluido en algn procedimiento (Function, Sub, Operator, Get, Set, AddHandler, RemoveHandler, RaiseEven t). Para obtener ms informacin, veaInstrucciones en Visual Basic21. Los elementos de datos en el nivel de procedimiento se limitan a las constantes y las variables locales.

Procedimiento Main
El procedimiento Main es el primer cdigo que se ejecuta cuando se ha cargado su aplicacin. Main acta como punto de partida y control general de la aplicacin. Hay cuatro variedades de Main:

Sub Main() Sub Main(ByVal cmdArgs() As String) Function Main() As Integer Function Main(ByVal cmdArgs() As String) As Integer

La variedad ms comn de este procedimiento es Sub Main(). Para obtener ms informacin, vea Procedimiento Main en Visual Basic22.

VERSIN DE VISUAL BASIC DEL PROGRAMA HOLA A TODOS


Visual Studio 2010 El siguiente programa de consola es la versin de Visual Basic del programa tradicional "Hola a todos", que muestra en pantalla la cadena "Hola a todos". VB ' A "Hello, World!" program in Visual Basic. Module Hello Sub Main() MsgBox("Hello, World!") ' Display message on computer screen. End Sub End Module A continuacin se indican algunos puntos importantes de este programa: Comentarios El procedimiento Main Entrada y salida Compilacin y ejecucin

Comentarios
La primera lnea del ejemplo contiene un comentario: VB ' A "Hello, World!" program in Visual Basic. La comilla sencilla (') indica que el resto de la lnea es un comentario y el compilador lo pasar por alto. Es posible tanto hacer un comentario en toda una lnea como anexar un comentario al final de otra instruccin, como se muestra a continuacin: VB MsgBox("Hello, World!") ' Display message on computer screen.

Procedimiento Main
Todas las aplicaciones de Visual Basic deben contener un procedimiento denominado Main.Este procedimiento sirve como punto de partida y control general de la aplicacin. Se llama cuando se carga el mdulo. Hay cuatro variedades de Main: Sub Main() Sub Main(ByVal cmdArgs() As String) Function Main() As Integer Function Main(ByVal cmdArgs() As String) As Integer La variedad ms comn de este procedimiento es Sub Main(). A menos que vaya a crear una aplicacin de Windows Forms, debe escribir el procedimiento Main para las aplicaciones que se ejecutan por s solas. Para obtener ms informacin, vea Procedimiento Main en Visual Basic.

Entrada y salida
Este ejemplo utiliza la biblioteca estndar en tiempo de ejecucin de Visual Basic, a la que se puede obtener acceso a travs del espacio de nombres de Microsoft.VisualBasic. Si compila el programa en el entorno de desarrollo integrado (IDE), puede utilizar todos los procedimientos y las propiedades de Microsoft.VisualBasic sin importarlo. Si compila desde la lnea de comandos, debe utilizar Instruccin Imports (Tipo y espacio de nombres de .NET) en el cdigo fuente o la opcin de lnea de comandos /imports (Visual Basic) del compilador para que los miembros de Microsoft.VisualBasic estn disponibles en el programa. El procedimiento Main llama a la funcin MsgBox para mostrar un cuadro de mensaje que contiene la cadena "Hola a todos": VB MsgBox("Hello, World!") ' Display message on computer screen.

Compilacin y ejecucin
El programa "Hola a todos" se puede compilar en el entorno de desarrollo integrado (IDE) de Visual Studio, o bien mediante la lnea de comandos.

Para compilar y ejecutar el programa desde la lnea de comandos


1. 2. Cree el archivo de cdigo fuente con un editor de texto y gurdelo con un nombre de archivo como Hello.vb. Para invocar el compilador, ejecute el comando siguiente: vbc Hello.vb Si el archivo de cdigo fuente no incluye una instruccin Imports para el espacio de nombres Microsoft.VisualBasic, puede incluir la opcin de lnea de comandos/imports del compilador en el comando vbc: vbc Hello.vb /imports:Microsoft.VisualBasic 3. 4. Si el programa no contiene errores de compilacin, el compilador crea un archivoHello.exe. Para ejecutar el programa, escriba el comando siguiente: Hello Puede incluir opcionalmente la opcin del compilador de lnea de comandos /main en el comando vbc, para especificar el espacio de nombres y el mdulo que proporcionan Main.

Para compilar y ejecutar el programa en el entorno IDE


1. 2. 3. Cree un proyecto de aplicacin de consola de Visual Basic. Copie el cdigo en el proyecto. En el men Generar, elija el comando Generar correspondiente o presione F5 para generar y ejecutar (que corresponde a Iniciar en el men Depurar).

PROCEDIMIENTO MAIN EN VISUAL BASIC


Visual Studio 2010 Todas las aplicaciones de Visual Basic deben contener un procedimiento denominado Main.Este procedimiento sirve como punto de partida y control general de la aplicacin. .NET Framework llama al procedimiento Main cuando ha cargado la aplicacin y est listo para pasarle el control. A menos que vaya a crear una aplicacin de Windows Forms, debe escribir el procedimiento Main para las aplicaciones que se ejecutan por s solas. Main contiene el cdigo que se ejecuta primero. En Main, se puede especificar qu formulario se cargar primero al iniciar el programa, se puede saber si se est ejecutando una copia de la aplicacin en el sistema, establecer un conjunto de variables para la aplicacin o abrir una base de datos que la aplicacin requiera.

Requisitos para el procedimiento Main


Un archivo que se ejecuta por s solo (normalmente con la extensin .exe) debe contener un procedimiento Main. Una biblioteca (por ejemplo con la extensin .dll) no se ejecuta por s sola y no requiere un procedimiento Main. Los requisitos para los diferentes tipos de proyectos que se pueden crear son los siguientes: Aplicaciones de consola que se ejecutan por s solas; se debe proporcionar al menos un procedimiento Main. . Aplicaciones de formularios Windows Forms que se ejecutan por s solas. Sin embargo, el compilador de Visual Basic genera automticamente un procedimiento Main en este tipo de aplicacin y no es necesario escribir uno. Las bibliotecas de clases no requieren un procedimiento Main. Entre ellas se incluyen las bibliotecas de controles de Windows y las bibliotecas de controles Web. Las aplicaciones Web se implementan como bibliotecas de clases.

Declarar el procedimiento Main


Hay cuatro formas de declarar el procedimiento Main. Puede tomar o no argumentos y puede devolver o no un valor.

Nota
Si se declara Main en una clase, hay que utilizar la palabra clave Shared. En un mdulo,Main no necesita ser Shared.
La manera ms simple es declarar un procedimiento Sub que no toma los argumentos ni devuelve un valor. Module mainModule Sub Main() MsgBox("The Main procedure is starting the application.") ' Insert call to appropriate starting place in your code. MsgBox("The application is terminating.") End Sub End Module

Main tambin puede devolver un valor Integer, que el sistema operativo utiliza como cdigo de salida del programa. Otros programas pueden comprobar este cdigo examinando el valor de ERRORLEVEL de Windows. Para devolver un cdigo de salida, se debe declarar Main como un procedimiento Function, no como un procedimientoSub. Module mainModule Function Main() As Integer MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' Insert call to appropriate starting place in your code. ' On return, assign appropriate value to returnValue. ' 0 usually means successful completion. MsgBox("The application is terminating with error level " & CStr(returnValue) & ".") Return returnValue End Function End Module Main tambin puede tomar como argumento una matriz de tipo String. Cada cadena de la matriz contiene uno de los argumentos de lnea de comandos que se utiliza para invocar el programa. Puede tomar acciones distintas en funcin de sus valores. Module mainModule Function Main(ByVal cmdArgs() As String) As Integer MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' See if there are any arguments. If cmdArgs.Length > 0 Then For argNum As Integer = 0 To UBound(cmdArgs, 1) ' Insert code to examine cmdArgs(argNum) and take ' appropriate action based on its value. Next argNum End If ' Insert call to appropriate starting place in your code. ' On return, assign appropriate value to returnValue. ' 0 usually means successful completion. MsgBox("The application is terminating with error level " & CStr(returnValue) & ".") Return returnValue End Function End Module Se puede declarar Main para examinar los argumentos de lnea de comandos pero no devolver un cdigo de salida, de la manera siguiente. Module mainModule Sub Main(ByVal cmdArgs() As String) MsgBox("The Main procedure is starting the application.") Dim returnValue As Integer = 0 ' See if there are any arguments. If cmdArgs.Length > 0 Then For argNum As Integer = 0 To UBound(cmdArgs, 1) ' Insert code to examine cmdArgs(argNum) and take ' appropriate action based on its value. Next argNum End If ' Insert call to appropriate starting place in your code. MsgBox("The application is terminating.") End Sub End Module

REFERENCIAS Y LA INSTRUCCIN IMPORTS (VISUAL BASIC)


Visual Studio 2010 Para que el proyecto pueda disponer de objetos externos, elija el comando Agregar referenciadel men Proyecto. Las referencias en Visual Basic pueden apuntar a ensamblados, que son similares a las bibliotecas de tipos pero contienen ms informacin.

Instruccin Imports
Los ensamblados incluyen uno o varios espacios de nombres. Cuando se agrega una referencia a un ensamblado, tambin puede agregarse una instruccin Imports a un mdulo para controlar la visibilidad de los espacios de nombres del ensamblado dentro del mdulo.La instruccin Imports proporciona un contexto de control de mbito que permite utilizar solamente la parte del espacio de nombres necesaria para suministrar una referencia nica. La instruccin Imports tiene la siguiente sintaxis: Imports [ | Aliasname =] Namespace Aliasname hace referencia a un nombre corto que se puede utilizar en el cdigo para referirse a un espacio de nombres importado. Namespace es un espacio de nombres que est disponible mediante una referencia de proyecto, una definicin dentro del proyecto o una instruccin Imports anterior. Un mdulo puede contener cualquier nmero de instrucciones Imports. stas deben aparecer detrs de las instrucciones Option, si hay alguna, pero antes de cualquier otro cdigo.

Nota
No hay que confundir las referencias de proyecto con las instrucciones Imports oDeclare. Las referencias de proyecto hacen que los objetos externos, como los objetos de ensamblados, estn disponibles para los proyectos de Visual Basic. La instruccin Importsse utiliza para simplificar el acceso a las referencias de proyecto, pero no facilita el acceso a dichos objetos. La instruccin Declare se utiliza para declarar una referencia a un procedimiento externo de una biblioteca de vnculos dinmicos (DLL).

Utilizar alias con la instruccin Imports


La instruccin Imports facilita el acceso a los mtodos de clases porque elimina la necesidad de escribir explcitamente los nombres completos de las referencias. Los alias permiten asignar un nombre ms descriptivo a una sola parte de un espacio de nombres. Por ejemplo, la secuencia retorno de carro y avance de lnea, que permite mostrar un texto en varias lneas, forma parte del mdulo ControlChars del espacio de nombres Microsoft.VisualBasic.

Para utilizar esta constante en un programa que no tenga un alias, debe escribir el siguiente fragmento de cdigo: VB MsgBox("Some text" & Microsoft.VisualBasic.ControlChars.CrLf & "Some more text") Las instrucciones Imports deben aparecer siempre en las primeras lneas, inmediatamente despus de cualquier instruccin Option de un mdulo. El fragmento de cdigo siguiente muestra cmo se importa y se asigna un alias al mdulo Microsoft.VisualBasic.ControlChars: VB Imports CtrlChrs = Microsoft.VisualBasic.ControlChars Las referencias que despus se hagan a este espacio de nombres pueden ser mucho ms breves: VB MsgBox("Some text" & CtrlChrs.CrLf & "Some more text") Si una instruccin Imports no incluye un nombre de alias, los elementos definidos en el espacio de nombres importado pueden utilizarse en el mdulo sin calificacin. Si se especifica el nombre del alias, debe utilizarse como calificador de los nombres contenidos en dicho espacio de nombres.

ESPACIOS DE NOMBRES EN VISUAL BASIC


Visual Studio 2010 Los espacios de nombres organizan los objetos definidos en un ensamblado. Un ensamblado puede contener varios espacios de nombres; stos, a su vez, pueden contener otros espacios de nombres. Los espacios de nombres evitan las ambigedades y simplifican las referencias cuando se utilizan grupos grandes de objetos, como bibliotecas de clases. Por ejemplo, .NET Framework define la clase ListBox en el espacio de nombresSystem.Windows.Forms. El fragmento de cdigo siguiente muestra cmo se puede declarar una variable utilizando el nombre completo de esta clase: VB

Dim LBox As System.Windows.Forms.ListBox

Evitar los conflictos de nombres


Los espacios de nombres de .NET Framework resuelven un problema que a veces se denomina contaminacin de espacios de nombres y que hace referencia a los obstculos con los que tropieza el desarrollador de una biblioteca de clases debido al uso de nombres similares en otra biblioteca. Estos conflictos con componentes existentes a veces se denominan conflictos de nombres. Por ejemplo, si crea una nueva clase denominada ListBox, podr utilizarla en el propio proyecto sin necesidad de calificacin. No obstante, si desea usar la clase ListBox de .NET Framework en el mismo proyecto, deber usar una referencia completa para que sea nica. Si la referencia no es nica, Visual Basic genera un error que indica que el nombre es ambiguo.En el ejemplo de cdigo siguiente se muestra cmo declarar objetos de este tipo: VB

' Define a new object based on your ListBox class. Dim LBC As New ListBox ' Define a new Windows.Forms ListBox control. Dim MyLB As New System.Windows.Forms.ListBox

La siguiente ilustracin muestra dos jerarquas de espacios de nombres; ambas contienen un objeto denominado ListBox.

De forma predeterminada, todos los archivos ejecutables creados con Visual Basic contienen un espacio de nombres cuyo nombre es igual que el del proyecto. Por ejemplo, si se define un objeto en un proyecto denominado ListBoxProject, el archivo ejecutable, ListBoxProject.exe, contendr un espacio de nombres denominado ListBoxProject. Varios ensamblados pueden usar el mismo espacio de nombres. Visual Basic los trata como un solo conjunto de nombres. Por ejemplo, pueden definirse clases para un espacio de nombres denominado SomeNameSpace en un ensamblado denominado Assemb1, y definirse clases adicionales para el mismo espacio de nombres desde un ensamblado denominado Assemb2.

Nombres completos
Los nombres completos son referencias de objetos que llevan como prefijo el nombre del espacio de nombres en el que est definido el objeto. Si se crea una referencia a la clase (eligiendo Agregar referencia del men Proyecto) se pueden utilizar objetos definidos en otros proyectos y, despus, utilizar el nombre completo del objeto en el cdigo. En el fragmento de cdigo siguiente se muestra cmo utilizar el nombre completo para un objeto del espacio de nombres de otro proyecto:

VB Dim LBC As New ListBoxProject.Form1.ListBox Los nombres completos evitan los conflictos de nombres porque permiten al compilador determinar qu objeto se utiliza. No obstante, los nombres pueden llegar a ser largos y complicados. Para solucionar este problema, puede utilizar la instruccin Imports para definir un alias, es decir, un nombre abreviado que sustituya al nombre completo. Por ejemplo, en el cdigo siguiente se crean alias para dos nombres completos y se utilizan para definir dos objetos. VB

Imports LBControl = System.Windows.Forms.ListBox Imports MyListBox = ListBoxProject.Form1.ListBox VB Dim LBC As LBControl Dim MyLB As MyListBox Si utiliza la instruccin Imports sin un alias, puede utilizar todos los nombres del espacio de nombres sin calificacin, a condicin de que sean nicos en el proyecto. Si el proyecto contiene instrucciones Imports para espacios de nombres que contienen elementos con el mismo nombre, deber usar nombres completos. Supongamos, por ejemplo, que el proyecto contiene estas instrucciones Imports: VB ' This namespace contains a class called Class1. Imports MyProj1 ' This namespace also contains a class called Class1. Imports MyProj2

Si intenta usar Class1 sin que su nombre sea completo, Visual Basic genera un error para indicar que el nombre de Class1 es ambiguo.

Instrucciones en el nivel de espacio de nombres


Dentro de un espacio de nombres pueden definirse elementos como los mdulos, interfaces, clases, delegados, enumeraciones, estructuras y otros espacios de nombres. Los elementos no se pueden definir como propiedades, procedimientos, variables y eventos en el nivel de espacio de nombres. Estos elementos se deben declarar dentro de los contenedores como mdulos, estructuras o clases.

Palabra clave Global


Si ha definido una jerarqua anidada de espacios de nombres, el cdigo dentro de esta jerarqua puede tener el acceso bloqueado al espacio de nombres System de .NET Framework. En el ejemplo siguiente se ilustra una jerarqua en la que el espacio de nombresSpecialSpace.System bloquea el acceso a System. Namespace SpecialSpace Namespace System Class abc Function getValue() As System.Int32 Dim n As System.Int32 Return n End Function End Class End Namespace End Namespace En consecuencia, el compilador de Visual Basic no puede resolver correctamente la referencia a System.Int32 porque SpecialSpace.System no define Int32. Puede utilizar la palabra clave Global para iniciar la cadena de calificacin en el nivel ms externo de la biblioteca de clases de .NET Framework. Esto permite especificar el espacio de nombres System o cualquier otro espacio de nombres en la biblioteca de clases. Esto se ilustra en el siguiente ejemplo: Namespace SpecialSpace Namespace System Class abc Function getValue() As Global.System.Int32 Dim n As Global.System.Int32 Return n End Function End Class End Namespace End Namespace Puede utilizar Global para tener acceso a otros espacios de nombres de nivel de raz, comoMicrosoft.VisualBasic, y a cualquier espacio de nombres asociado a su proyecto.

CONVENCIONES DE NOMENCLATURA DE VISUAL BASIC


Visual Studio 2010 Al dar nombre a un elemento de una aplicacin de Visual Basic, el primer carcter del nombre debe ser un carcter alfabtico o un guin de subrayado. Tenga en cuenta, sin embargo, que los nombres que empiezan con un guin de subrayado no cumplen las normas de Common Language Specification (CLS).

A la nomenclatura se aplican las siguientes sugerencias. Empiece cada palabra independiente de un nombre con una letra mayscula, como enFindLastRecord y RedrawMyForm. Empiece los nombres de mtodo y de funcin con un verbo, como en InitNameArrayo CloseDialog. Empiece los nombres de clase, estructura, mdulo y propiedad con un nombre, como enEmployeeName o CarAccessory. Empiece los nombres de interfaz con el prefijo "I", seguido de un nombre o una frase nominal, como IComponent, o con un adjetivo que describa el comportamiento de la interfaz, como IPersistable. No utilice el subrayado, y utilice lo menos posible las abreviaturas, ya que pueden causar confusiones. Empiece los nombres de controlador de eventos con un nombre que describa el tipo de evento seguido por el sufijo "EventHandler", como en "MouseEventHandler". En nombres de clases de argumento de evento, incluya el sufijo "EventArgs". Si un evento tiene un concepto de antes o despus, utilice un sufijo en tiempo presente o pasado, como en "ControlAdd" o "ControlAdded". Para trminos largos o utilizados con frecuencia, utilice abreviaturas para mantener las longitudes de los nombres dentro un lmite razonable, por ejemplo, "HTML" en lugar de "Lenguaje de marcado de hipertexto". En general, los nombres de variable con ms de 32 caracteres son difciles de leer en una pantalla configurada para una resolucin baja.Adems, asegrese de que sus abreviaturas sean coherentes a lo largo de toda la aplicacin. Si utiliza indistinta y aleatoriamente "HTML" y "Lenguaje de marcado de hipertexto" en un mismo proyecto, puede provocar confusin. Evite utilizar nombres que en un entorno interno sean iguales que otros nombres de un entorno externo. Se producirn errores si se obtiene acceso a la variable equivocada. Si se produce un conflicto entre una variable y la palabra clave del mismo nombre, debe identificar la palabra clave ponindole delante la biblioteca de tipos adecuada. Por ejemplo, si tiene una variable denominada Date, slo puede utilizar la funcin intrnsecaDate llamando a DateTime.Date.

CONVENCIONES DE CDIGO DE VISUAL BASIC


Visual Studio 2010 Microsoft utiliza estas directrices para desarrollar ejemplos y documentacin. La especificacin del lenguaje de Visual Basic no define una codificacin estndar. Las convenciones de codificacin dan un aspecto coherente al cdigo, de modo que los lectores pueden centrar su atencin en el contenido y no en el diseo. Las convenciones permiten que los lectores comprendan el cdigo con ms rapidez porque les permite hacer suposiciones basadas en su experiencia anterior. Las convenciones facilitan la copia, la modificacin y el mantenimiento del cdigo. Las convenciones muestran los "procedimientos recomendados" de Visual Basic.

Explicacin
Convenciones de nomenclatura
Las directrices de nomenclatura se tratan en Instrucciones de diseo para desarrollar bibliotecas de clases. No tiene que cambiar el nombre de los objetos que se hayan creado con las herramientas de diseo de Visual Studio para que se ajusten a estas directrices. Utilice las calificaciones de espacios de nombres en lugar de agregar instrucciones Imports. Si un espacio de nombres se importa de manera predeterminada en un proyecto, no tiene que utilizar nombres completos en el cdigo porque se ejecutar sin calificar con IntelliSense cuando se copie y se pegue. Al dividir lneas largas de cdigo para facilitar la lectura del cdigo, los nombres completos pueden cortarse despus del "." Por ejemplo: VB Dim collection As System.Diagnostics. InstanceDataCollectionCollection No utilice "Mi" o "mi" como parte de un nombre de variable. Esto crea confusin con los objetos My.

Convenciones de diseo
Un diseo apropiado utiliza formatos para hacer hincapi en la estructura del cdigo y facilitar su lectura. Utilice la caracterstica de lista descriptiva para dar formato al cdigo con la configuracin predeterminada (sangra automtica, sangras de 4 caracteres, guardar tabuladores como espacios). Para obtener ms informacin, vea Opciones especficas de VB, Basic, Editor de texto, Opciones (Cuadro de dilogo). Utilice slo una instruccin por lnea. No utilice el carcter (:) de continuacin de lnea de Visual Basic. Utilice slo una declaracin por lnea. Si la lista descriptiva no da formato a las lneas de continuacin, aplique una sangra de una posicin de tabulacin a las lneas de continuacin. Agregue al menos una lnea en blanco entre el mtodo y las definiciones de propiedad.

Convenciones de los comentarios


VB No utilice comentarios al final de una lnea de cdigo. Site los comentarios en una lnea independiente. Comience el texto del comentario con una letra mayscula. Finalice el comentario con un punto. Inserte un espacio entre el delimitador de comentario (') y el texto del comentario.

' Here is a comment.


No cree bloques de asteriscos con formato alrededor de los comentarios.

Estructura del programa


Al utilizar el mtodo Main, utilice la construccin predeterminada para las nuevas aplicaciones de consola y utilice My para los argumentos de la lnea de comandos. VB Sub Main() For Each argument As String In My.Application.CommandLineArgs ' Add code here to use the string variable. Next End Sub

Convenciones de lenguaje
String (Tipo de datos) Utilice & para concatenar cadenas: VB MsgBox("hello" & vbCrLf & "goodbye") Para anexar cadenas en bucles, utilice el objeto StringBuilder: VB Dim longString As New System.Text.StringBuilder For count As Integer = 1 To 1000 longString.Append(count) Next Inferencia de tipo Saque partido de la inferencia de tipos para las variables locales: VB Public Sub GetQuery() Dim filterValue = "London" Dim query = From customer In customers Where customer.Country = filterValue End Sub Delegados flexibles en controladores de eventos Utilice delegados flexibles y omita argumentos de evento si no est utilizando argumentos de evento en el cdigo: VB Public Sub Form1_Load() Handles Form1.Load End Sub

Tipo de datos sin signo Utilice Integer en lugar de tipos sin signo a menos que la memoria sea insuficiente.

Matrices Utilice la sintaxis abreviada al inicializar las matrices en la lnea de declaracin: VB Dim letters1() As String = {"a", "b", "c"} en lugar de: VB Dim letters2() As String = New String() {"a", "b", "c"}

Site el designador de la matriz en la variable, no en el tipo: VB Dim letters3() As String = {"a", "b", "c"} en lugar de: VB Dim letters4 As String() = {"a", "b", "c"}

Utilice la sintaxis {} al declarar e inicializar matrices de tipos de datos bsicos: VB Dim letters5() As String = {"a", "b", "c"} en lugar de: VB Dim letters6(2) As String letters6(0) = "a" letters6(1) = "b" letters6(2) = "c"

Utilice la palabra clave With Cuando utilice una serie de llamadas a un objeto, considere la posibilidad de utilizar la palabra clave With.

VB With orderLog .Log = "Application" .Source = "Application Name" .MachineName = "Computer Name" End With Utilizar la inferencia de tipos para variables de bucle en instrucciones For o For Each Permita que la inferencia de tipos determine el tipo de variable de intervalo de bucle. A continuacin hay un ejemplo de cmo se utiliza la inferencia de tipos en una instruccinFor: VB For count = 0 To 2 MsgBox(names(count)) Next A continuacin hay un ejemplo de cmo se utiliza la inferencia de tipos en una instruccinFor Each: VB For Each name In names MsgBox(name) Next Utilizar las instrucciones Try...Catch y Using para el control de excepciones No utilice On Error Goto. Para controlar las excepciones, utilice una instruccin Try...Catch: VB Dim conn As New SqlConnection("connection string") Try Conn.Open() Catch ex As SqlException Finally Conn.Close() End Try La instruccin Using combina una instruccin Try...Catch con una llamada al mtodoDispose y simplifica el cdigo. Si est utilizando una instruccin Try...Catch y el nico cdigo en el bloque Finally es una llamada al mtodo Dispose, utilice la instruccinUsing en su lugar. VB Using redPen As New Pen(color.Red) ' Insert code here.

End Using Utilizar la palabra clave IsNot Utilice preferentemente la palabra clave IsNot a Not...Is Nothing. Utilizar las palabras clave AndAlso y OrElse Para evitar excepciones y aumentar el rendimiento omitiendo el cdigo innecesario, utiliceAndAlso en lugar de And y OrElse en lugar de Or al realizar las comparaciones: VB ' Avoid a null reference exception. If the left side of the AndAlso ' operator is False, the right side is not evaluated and a null ' exception is not thrown. If nullableObject IsNot Nothing AndAlso nullableObject = testValue Then End If ' Avoid an unnecessary resource-intensive operation. If the left side ' of the OrElse operator is True, the right side is not evaluated and ' a resource-intensive operation is not called. If testCondition OrElse ResourceIntensiveOperation() Then End If Instancias de formularios predeterminadas Utilice Form1.ShowDialog en lugar de My.Forms.Form1.ShowDialog. New (Palabra clave) Utilice la creacin de instancias abreviadas: VB Dim employees As New List(Of String) La lnea anterior es equivalente a esto: VB Dim employees2 As List(Of String) = New List(Of String) Utilice los inicializadores de objeto para los nuevos objetos en lugar del constructor sin parmetros: VB Dim orderLog As New EventLog With { .Log = "Application", .Source = "Application Name",

.MachineName = "Computer Name"} Control de eventos Utilice Handles en lugar de AddHandler. VB Private Sub ToolStripMenuItem1_Click() Handles ToolStripMenuItem1.Click End Sub Utilice AddressOf y no cree instancias explcitas del delegado: VB Dim closeItem As New ToolStripMenuItem( "Close", Nothing, AddressOf ToolStripMenuItem1_Click) Me.MainMenuStrip.Items.Add(closeItem) Cuando defina un evento, utilice la sintaxis corta y permita que el compilador defina el delegado: VB Public Event WhatHappened(ByVal source As Object, ByVal e As WhatHappenedEventArgs) No compruebe si un evento es Nothing (null) antes de llamar al mtodo RaiseEvent.RaiseEvent comprueba Nothing antes de generar el evento.

Utilizar miembros compartidos Llame a los miembros Shared utilizando el nombre de clase y no una variable de instancia. Utilizar la funcin MsgBox Utilice MsgBox en lugar de MessageBox.Show o Console.WriteLine. En entornos que no admiten la funcin MsgBox, como Silverlight, utilice una alternativa adecuada. Utilice el espacio de nombres My Utilice las caractersticas My en preferencia a la biblioteca de clases de .NET Framework o a la biblioteca en tiempo de ejecucin de Visual Basic. Para obtener ms informacin, vea Objetos (Visual Basic). Utilizar literales XML Los literales XML simplifican las tareas ms comunes con las que se encuentra al trabajar con XML (por ejemplo, cargar, consultar y transformar). Al desarrollar con XML, siga estas instrucciones:

Utilice literales XML para crear documentos y fragmentos XML en lugar de llamar directamente a API XML. Importe espacios de nombres XML al archivo o nivel de proyecto para sacar partido de la optimizacin del rendimiento para los literales XML. Utilice las propiedades de eje XML para tener acceso a elementos y atributos en un documento XML. Utilice expresiones incrustadas para incluir valores y crear XML a partir de valores existentes en lugar de utilizar llamadas de API como el mtodo Add: VB Private Function GetHtmlDocument( ByVal items As IEnumerable(Of XElement)) As String Dim htmlDoc = <html> <body> <table border="0" cellspacing="2"> <%= From item In items Select <tr> <td style="width:480"> <%= item.<title>.Value %> </td> <td><%= item.<pubDate>.Value %></td> </tr> %> </table> </body> </html> Return htmlDoc.ToString() End Function

Consultas LINQ Utilice nombres descriptivos para las variables de consulta: VB Dim seattleCustomers = From cust In customers Where cust.City = "Seattle" Cree alias de elementos en una consulta para asegurarse de que los nombres de propiedad de tipos annimos se escriben con las maysculas correctas mediante la grafa Pascal: VB Dim customerOrders = From customer In customers Join order In orders On customer.CustomerID Equals order.CustomerID Select Customer = customer, Order = order

Cambie el nombre de las propiedades cuando los nombres de propiedad en el resultado puedan ser ambiguos. Por ejemplo, si la consulta devuelve un nombre de cliente y un Id. de pedido, en lugar de dejarlos como Name e ID en el resultado, cmbieles el nombre: VB Dim customerOrders2 = From cust In customers Join ord In orders On cust.CustomerID Equals ord.CustomerID Select CustomerName = cust.Name, OrderID = ord.ID

Utilice la inferencia de tipos en la declaracin de variables de consulta y variables de intervalo: VB

Dim customerList = From cust In customers Alinee las clusulas de consulta bajo la instruccin From: VB Dim newyorkCustomers = From cust In customers Where cust.City = "New York" Select cust.LastName, cust.CompanyName Utilice las clusulas Where antes de otras clusulas de consulta para asegurarse de que las clusulas de consulta posteriores operen en el conjunto de datos reducido y filtrado: VB Dim newyorkCustomers2 = From cust In customers Where cust.City = "New York" Order By cust.LastName Utilice la clusula Join para definir explcitamente una combinacin en lugar de utilizar la clusula Where para definir implcitamente una combinacin: VB Dim customerList2 = From cust In customers Join order In orders On cust.CustomerID Equals order.CustomerID Select cust, order Utilice los miembros de la biblioteca en tiempo de ejecucin de Visual Basic Utilice la biblioteca en tiempo de ejecucin de Visual Basic en preferencia a la biblioteca de clases de .NET Framework.

COMPILACIN CONDICIONAL EN VISUAL BASIC


Visual Studio 2010 En la compilacin condicional, se compilan de forma selectiva bloques determinados del cdigo de un programa mientras que otros se omiten. Por ejemplo, podra interesarle escribir instrucciones de depuracin que comparen la velocidad de varios enfoques de la misma tarea de programacin o quiz desee adaptar una aplicacin en varios idiomas. Las instrucciones de compilacin condicional se han concebido para su ejecucin en tiempo de compilacin, no durante la ejecucin. Los bloques de cdigo que se compilarn de forma condicional se denotan con la directiva#If...Then...#Else. Por ejemplo, para crear versiones en francs y alemn de la misma aplicacin a partir del mismo cdigo fuente, incruste segmentos de cdigo especficos de la plataforma correspondiente en instrucciones #If...Then, por medio de las constantes predefinidasFrenchVersion y GermanVersion. En el ejemplo siguiente se explica cmo hacerlo: VB #If FrenchVersion Then ' <code specific to the French language version>. #ElseIf GermanVersion Then ' <code specific to the German language version>. #Else ' <code specific to other versions>. #End If Si establece el valor de la constante de compilacin condicional FrenchVersion en True en tiempo de compilacin, se compila el cdigo condicional de la versin en francs. Si define el valor de la constante GermanVersion como True, el compilador usa la versin en alemn. Si ninguna de las dos est establecida en True, se ejecuta el cdigo del ltimo bloque Else.

Nota
Autocompletar no funcionar al editar cdigo y utiliza directivas de compilacin condicional si el cdigo no forma parte de la bifurcacin actual.

Declarar constantes de compilacin condicional


Existen tres mtodos para definir las constantes de compilacin condicional: En el Diseador de proyectos En la lnea de comandos, cuando se utiliza el compilador de la lnea de comandos. En el cdigo.

Las constantes de compilacin condicional tienen un mbito especial y no est permitido el acceso a ellas desde el cdigo estndar. El mbito de una constante de compilacin condicional depende de cmo se ha definido. En la tabla siguiente se muestra una lista del mbito de las constantes declaradas siguiendo los tres mtodos antes mencionados.

Mtodo de definicin de la constante Diseador de proyectos Lnea de comandos

mbito de la constante

Pblico para todos los archivos del proyecto Pblico para todos los archivos que se pasen al compilador de la lnea de comandos Privado para el archivo en que se declara

Instruccin #Const en el cdigo

Para establecer las constantes en el Diseador de proyectos

Antes de crear el archivo ejecutable, defina las constantes en el Diseador de proyectos siguiendo el procedimiento descrito en Cmo: Modificar las propiedades y los valores de configuracin del proyecto.

Para definir constantes en la lnea de comandos

Use el modificador /d para especificar constantes de compilacin condicional, como en el ejemplo siguiente:
vbc MyProj.vb /d:conFrenchVersion=1:conANSI=0

No se requiere un espacio entre el modificador /d y la primera constante. Para obtener ms informacin, vea /define (Visual Basic). Las declaraciones de la lnea de comandos reemplazan las especificadas en elDiseador de proyectos, pero no las borran. Los argumentos definidos en elDiseador de proyectos permanecen activos durante las compilaciones subsiguientes. A la hora de escribir constantes en el propio cdigo no existen reglas estrictas en cuanto a su ubicacin, puesto que su mbito es el mdulo completo en el que se declaran. Para definir constantes en el cdigo

Site las constantes en el bloque de declaracin del mdulo en el que se utilicen. De esta forma se facilitan la organizacin del cdigo y su lectura.

CMO: INTERRUMPIR Y COMBINAR INSTRUCCIONES EN CDIGO (VISUAL BASIC)


Visual Studio 2010 Cuando crea el cdigo, a veces debe crear instrucciones largas que requieren un desplazamiento horizontal en el Editor de cdigo. Aunque esto no afecta a la forma en que se ejecuta el cdigo, dificulta la lectura del cdigo tal y como aparece en la pantalla. En estos casos, debe considerar la posibilidad de segmentar la nica instruccin larga en varias lneas. En otras ocasiones, quizs desee consolidar las instrucciones en una sola lnea; por ejemplo, si tiene diversas instrucciones cortas y desea ahorrar espacio. Esta caracterstica puede ser tambin til al organizar variables o comandos dentro de un mdulo.

Para segmentar una sola instruccin en varias lneas


Utilice el carcter de continuacin de lnea, que es un subrayado (_), en el punto en el que desea que la lnea se interrumpa. El subrayado debe ir precedido inmediatamente de un espacio o un terminador de lnea (retorno de carro). En algunos casos, se puede omitir el carcter de continuacin de lnea y el compilador de Visual Basic continuar implcitamente la instruccin en la lnea de cdigo siguiente. Para obtener una lista de elementos de sintaxis en los que se puede omitir el carcter de continuacin de lnea, vea "Continuacin de lnea implcita" en Instrucciones en Visual Basic. En el ejemplo siguiente, la instruccin se segmenta en cuatro lneas con caracteres de continuacin de lnea al final de todas las lneas excepto la ltima. VB cmd.CommandText = _ "SELECT * FROM Titles JOIN Publishers " _ & "ON Publishers.PubId = Titles.PubID " _ & "WHERE Publishers.State = 'CA'" La utilizacin de esta secuencia facilita la lectura del cdigo, tanto en pantalla como al imprimirlo.

Nota
El carcter de continuacin de lnea es necesariamente lo ltimo que aparece en una lnea. No es posible agregar nada ms en la misma lnea.
Existen algunas restricciones respecto al uso del carcter de continuacin de lnea en determinadas posiciones, como en medio de un nombre de argumento. Puede segmentar una lista de argumentos con el carcter de continuacin de lnea, pero los nombres individuales de los argumentos deben permanecer intactos.

Nota
No es posible continuar un comentario mediante el carcter de continuacin de lnea. Una vez que se inicia un comentario, el compilador no busca ningn significado especial en los caracteres. Para insertar un comentario de mltiples lneas, repita el smbolo de comentario en cada lnea (').
Aunque el mtodo recomendado consiste en colocar cada instruccin en una lnea independiente, Visual Basic tambin permite colocar varias instrucciones en la misma lnea.

Para colocar varias instrucciones en la misma lnea


Separe las instrucciones con un signo de dos puntos (:), como en el ejemplo siguiente: VB text1.Text = "Hello" : text1.BackColor = System.Drawing.Color.Red

CMO: CONTRAER Y OCULTAR SECCIONES DE CDIGO (VISUAL BASIC)


Basic.La directiva #Region permite especificar un bloque de cdigo que se puede expandir o contraer al utilizar el editor de cdigo de Visual Studio. La capacidad para ocultar cdigo de forma selectiva facilita la administracin del cdigo y su lectura. Para obtener ms informacin, veaCmo: Esquematizar y ocultar el cdigo. Las directivas #Region admiten la semntica de bloque de cdigo como #If...#End If. Es decir, no pueden empezar en un bloque y terminar en otro; su principio y su fin deben estar en el mismo bloque. Las directivas #Region no se admiten en las funciones.

Para contraer y esconder secciones de cdigo


Site la seccin de cdigo entre las instrucciones #Region y #End Region, como en el siguiente ejemplo: VB #Region "This is the code to be collapsed" Private components As System.ComponentModel.Container Dim WithEvents Form1 As System.Windows.Forms.Form Private Sub InitializeComponent() components = New System.ComponentModel.Container Me.Text = "Form1" End Sub #End Region

El bloque #Region puede utilizarse varias veces en un archivo de cdigo; de esta forma, los usuarios pueden definir sus propios bloques de procedimientos y clases que, a su vez, pueden contraerse. Los bloques #Region tambin pueden anidarse dentro de otros bloques #Region.

Nota
Al ocultar el cdigo no evita que ste se compile, y no afecta a las instrucciones#If...#End If.

CMO: APLICAR ETIQUETAS A LAS INSTRUCCIONES (VISUAL BASIC)


Visual Studio 2010 Los bloques de instrucciones estn formados por lneas de cdigo delimitadas por dos puntos.Las lneas de cdigo precedidas por una cadena o nmero entero identificador se denominanetiquetadas. Las etiquetas de instrucciones se utilizan para marcar una lnea de cdigo e identificarla para su utilizacin en instrucciones del tipo On Error Goto. Las etiquetas pueden ser identificadores de Visual Basic 2010 vlidos, como los que identifican elementos de programacin o literales enteros. Las etiquetas deben aparecen al principio de una lnea de cdigo fuente y deben ir seguidas de un signo dos puntos, independientemente de si van seguidas de una instruccin en la misma lnea. El compilador identifica las etiquetas al comprobar si el principio de la lnea coincide con un identificador ya definido. Si no es as, el compilador dar por hecho que se trata de una etiqueta. Las etiquetas tienen su propio espacio de declaracin y no interfieren con otros identificadores.El mbito de una etiqueta es el cuerpo del mtodo. La declaracin de etiqueta tiene prioridad en cualquier situacin ambigua.

Nota
Las etiquetas slo se pueden utilizar en instrucciones ejecutables dentro de mtodos.

Para etiquetar una lnea de cdigo.


Coloque un identificador, seguido de dos puntos, al principio de la lnea de cdigo fuente. Por ejemplo, a las siguientes lneas de cdigo se les han asignado las etiquetas Jump y120, respectivamente: VB Jump: 120: FileOpen(1, "testFile", OpenMode.Input) ' ... FileClose(1)

CARACTERES ESPECIALES EN CDIGO (VISUAL BASIC)


Visual Studio 2010 A veces es necesario usar caracteres especiales en el cdigo, es decir, caracteres que no son alfabticos o numricos. Los caracteres de puntuacin y especiales del juego de caracteres de Visual Basic tienen varias finalidades, desde organizar el texto del programa hasta definir las tareas que realiza el compilador o el programa compilado. No especifican que se deba realizar una operacin.

Parntesis
Utilice parntesis al definir un procedimiento, como Sub o Function. Debe incluir entre parntesis todas las listas de argumentos de los procedimientos. Tambin se utilizan parntesis para agrupar las variables o argumentos en grupos lgicos, en particular para reemplazar el orden predeterminado de prioridad de operadores en una expresin compleja.Esto se ilustra en el siguiente ejemplo: VB Dim a = b = c = d = e = a, b, c, d, e As Double 3.2 7.6 2 b + c / a (b + c) / a

Tras la ejecucin del cdigo anterior, el valor de d es 8,225 y el valor de e es 3. El clculo de dutiliza la prioridad predeterminada de / sobre + y es equivalente a d = b + (c / a). Los parntesis del clculo para e reemplazan la prioridad predeterminada.

Separadores
Los separadores hacen lo que su nombre sugiere; separan secciones de cdigo. En Visual Basic, el carcter separador corresponde a los dos puntos (:). Utilice los separadores se desea incluir varias instrucciones en una nica lnea en lugar de escribirlas en lneas independientes.Esto ahorra espacio y mejora la legibilidad del cdigo. En el ejemplo siguiente se muestran tres instrucciones separadas por dos puntos. VB a = 3.2 : b = 7.6 : c = 2 Para obtener ms informacin, vea Cmo: Interrumpir y combinar instrucciones en cdigo (Visual Basic). El carcter de dos puntos (:) tambin se utiliza para identificar una etiqueta de instruccin.Para obtener ms informacin, vea Cmo: Aplicar etiquetas a las instrucciones (Visual Basic).

Concatenacin
Utilice el operador & para concatenar o vincular cadenas entre s. No lo confunda con el operador +, que suma valores numricos. Si utiliza el operador + para concatenar cuando est operando con valores numricos, puede obtener resultados no deseados. En el siguiente ejemplo se muestra cmo. VB

var1 = "10.01" var2 = 11 resultA = var1 + var2 resultB = var1 & var2 Siguiendo la ejecucin del cdigo anterior, el valor de resultA es 21,01 y el valor deresultB es "10,0111".

Operadores de acceso a miembros


Para tener acceso a un miembro de un tipo, utilice el operador punto (.) o signo de exclamacin (!) entre el nombre del tipo y el nombre del miembro.

Punto (.) Operador


Utilice el operador . en una clase, estructura, interfaz o enumeracin como operador de acceso a miembros. El miembro puede ser un campo, una propiedad, un evento o un mtodo. Esto se ilustra en el siguiente ejemplo:

VB Dim nextForm As New System.Windows.Forms.Form ' Access Text member (property) of Form class (on nextForm object). nextForm.Text = "This is the next form" ' Access Close member (method) on nextForm. nextForm.Close()

Signo de exclamacin (!) Operador


Utilice el operador !, slo en una clase o interfaz, como operador de acceso al diccionario. La clase o interfaz debe tener una propiedad predeterminada que acepte un solo argumentoString. El identificador que sigue inmediatamente al operador ! se convierte en el valor del argumento pasado a la propiedad predeterminada como cadena. En el siguiente ejemplo se muestra cmo. VB Public Class hasDefault Default Public ReadOnly Property index(ByVal s As String) As Integer Get Return 32768 + AscW(s) End Get End Property End Class Public Class testHasDefault Public Sub compareAccess() Dim hD As hasDefault = New hasDefault() MsgBox("Traditional access returns " & hD.index("X") & vbCrLf & "Default property access returns " & hD("X") & vbCrLf & "Dictionary access returns " & hD!X) End Sub End Class Las tres lneas de resultado de MsgBox muestran el valor 32856. La primera lnea utiliza un acceso tradicional a la propiedad index, la segunda aprovecha el hecho de que index es la propiedad predeterminada de la clase hasDefault y la tercera usa el acceso de diccionario a la clase. Observe que el segundo operando del operador ! debe ser un identificador de Visual Basic vlido que no est entre comillas (" "). Dicho de otra forma, no se puede utilizar un literal de cadena o una variable de cadena. El cambio siguiente a la ltima lnea de la llamada MsgBoxgenera un error porque "X" es un literal de cadena incluido entre comillas. "Dictionary access returns " & hD!"X")

Nota
Las referencias a colecciones predeterminadas deben ser explcitas. En particular, no es posible utilizar el operador ! en una variable de enlace en tiempo de ejecucin.
El carcter ! tambin se utiliza como carcter de tipo Single.

COMENTARIOS EN EL CDIGO (VISUAL BASIC)


Visual Studio 2010 Cuando lea ejemplos de cdigo, encontrar el smbolo de comentario ('). Este smbolo solicita al compilador de Visual Basic que pase por alto el texto que aparece a continuacin o elcomentario. Los comentarios son notas cortas explicativas que se agregan al cdigo para aportar mayor informacin a las personas que lo lean. Una buena prctica de programacin consiste en comenzar todos los procedimientos con un comentario breve que describe las caractersticas funcionales del procedimiento (lo que hace).Esto ayuda al programador y a los que puedan examinar el cdigo. Debera separar los detalles de implementacin (cmo lo hace el procedimiento) de los comentarios que describen las caractersticas funcionales. Al incluir detalles de implementacin en la descripcin, recuerde actualizarlos en el momento de actualizar la funcin. Los comentarios pueden ir a continuacin de una instruccin en la misma lnea, o pueden ocupar una lnea completa. Ambas opciones quedan reflejadas en el cdigo siguiente. VB ' This is a comment beginning at the left edge of the screen. text1.Text = "Hi!" ' This is an inline comment. Si el comentario necesita ms de una lnea, utilice el smbolo de comentario en cada lnea, como se muestra en el siguiente ejemplo: VB ' This comment is too long to fit on a single line, so we break ' it into two lines. Some comments might need three or more lines.

Instrucciones sobre los comentarios


La tabla siguiente proporciona directrices generales sobre los tipos de comentarios que pueden preceder una seccin de cdigo. Se trata nicamente de sugerencias, ya que Visual Basic no tiene reglas obligatorias para agregar comentarios. Escriba lo que considere ms conveniente, para uso propio o para cualquier otra persona que lea el cdigo.

Tipo de comentario Finalidad Suposiciones

Descripcin del comentario

Describe qu hace el procedimiento (no cmo lo hace). Enumera cada variable externa, control, archivo abierto u otro elemento al cual el procedimiento tenga acceso.

Efectos

Enumera cada variable externa, control o archivo que est afectado, y el efecto que tienen (nicamente si no es evidente). Especifica el propsito del argumento. Explica los valores que devuelve el procedimiento

Entradas Valores devueltos

Recuerde los siguientes puntos: Cada declaracin de variable importante debe incluir un comentario anterior que describa el uso de la variable que se declara. Las variables, controles y procedimientos deben tener un nombre lo suficientemente claro para asegurar que el uso de comentarios slo sea necesario para detalles de implementacin compleja. Despus de la secuencia de continuacin de lnea no puede escribirse un comentario en la misma lnea.

Puede agregar o quitar smbolos de comentario de un bloque de cdigo seleccionando una o ms lneas de cdigo y eligiendo los botones Seleccin con comentarios ( sin comentarios ( ) de la barra de herramientas Edicin. ) y Seleccin

Nota
Tambin puede agregar comentarios al cdigo poniendo la palabra clave REM antes del texto. Sin embargo, el smbolo ' y los botones Seleccin con comentarios y Seleccin sin comentarios son ms fciles de utilizar y requieren menos espacio y memoria.

o CMO: AGREGAR UN COMENTARIO AL CDIGO (VISUAL BASIC)


Visual Studio 2010 En este ejemplo se muestran comentarios que ocupan una lnea de cdigo fuente completa, parte de una lnea y ms de una lnea.

Ejemplo
VB ' This entire line is a comment. Dim DailyTotal As Decimal = 0 ' Sales total for today. ' This comment is so long that it requires more than one line, so ' the comment character (') must be repeated on the second line.

Este ejemplo de cdigo tambin est disponible como fragmento de cdigo de IntelliSense.En el selector de fragmentos de cdigo, se encuentra en Lenguaje Visual Basic. Para obtener ms informacin, vea Fragmentos de cdigo de IntelliSense de Visual Basic.

Compilar el cdigo
Este ejemplo necesita: Una referencia al espacio de nombres System.

Nota
No es posible continuar un comentario utilizando la secuencia de continuacin de lnea ( _). Deber repetir el carcter de comentario (') al principio de cada lnea de comentario.

o DOCUMENTAR EL CDIGO CON XML (VISUAL BASIC)


Visual Studio 2010 En Visual Basic se puede documentar el cdigo utilizando XML

Comentarios de la documentacin XML


Visual Basic proporciona un medio sencillo para crear automticamente documentacin XML para los proyectos. Puede generar automticamente un esquema XML para los tipos y miembros y, a continuacin, proporcionar resmenes, documentacin descriptiva para cada parmetro y otros comentarios. Con la configuracin apropiada, la documentacin XML se emite automticamente en un archivo XML que tiene el mismo nombre que el proyecto y la extensin .xml. Para obtener ms informacin, vea /doc. El archivo XML se puede utilizar o, de lo contrario, manipularse como XML. Este archivo se encuentra en el mismo directorio que el archivo .exe de salida o el archivo .dll del proyecto. La documentacin XML empieza con '''. El procesamiento de estos comentarios presenta algunas restricciones: La documentacin debe estar en XML bien formado. Si el cdigo XML no est bien formado, se generar una advertencia y el archivo de documentacin incluir un comentario que mencione el error encontrado. Los programadores pueden crear su propio conjunto de etiquetas. Existe un conjunto de etiquetas recomendado (vea "Secciones relacionadas" en este tema). Algunas de las etiquetas recomendadas tienen significados especiales: La etiqueta <param> se usa para describir parmetros. Cuando se utiliza, el compilador comprueba si el parmetro existe y si todos los parmetros estn

descritos en la documentacin. Si la comprobacin no tiene xito, el compilador emite una advertencia. El atributo cref se puede asociar a cualquier etiqueta para proporcionar una referencia a un elemento de cdigo. El compilador comprueba si existe ese elemento de cdigo. Si la comprobacin no tiene xito, el compilador emite una advertencia. El compilador tambin respeta cualquier instruccin Importscuando busca un tipo descrito en el atributo cref. La etiqueta <summary> la utiliza IntelliSense en Visual Studio para mostrar informacin adicional sobre un tipo o miembro.

PROCESAR EL ARCHIVO XML (VISUAL BASIC)


Visual Studio 2010 El compilador genera una cadena id. por cada construccin del cdigo marcada para generar documentacin. (Para obtener informacin sobre cmo etiquetar el cdigo, vea Etiquetas XML recomendadas para comentarios de documentacin (Visual Basic).) La cadena id. identifica de forma exclusiva cada construccin. Los programas que procesan el archivo XML pueden utilizar la cadena id. para identificar el elemento de metadatos o reflexin correspondiente en .NET Framework. El archivo XML no es una representacin jerrquica del cdigo, es una lista sencilla con un identificador generado para cada elemento. El compilador cumple las siguientes reglas cuando genera las cadenas id.: No se coloca ningn espacio en blanco en la cadena. La primera parte de la cadena de id. identifica el tipo de miembro por medio de un nico carcter seguido de dos puntos. Se utilizan los siguientes tipos de miembros:

Carcter Descripcin N Espacio de nombres No se pueden agregar comentarios de documentacin a un espacio de nombres, pero, si se admiten, se pueden hacer referencias CREF a ellos. T F P M E tipo: Class, Module, Interface, Structure, Enum, Delegate campo: Dim propiedad: Property (incluidas las propiedades predeterminadas) mtodo: Sub, Function, Declare, Operator evento: Event

cadena de error El resto de la cadena proporciona informacin acerca del error. El compilador de Visual Basic genera informacin de error para los vnculos que no se pueden resolver.
La segunda parte de String es el nombre completo del elemento, que comienza en la raz del espacio de nombres. El nombre del elemento, los tipos contenedores y el espacio de nombres se separan mediante puntos. Si el propio nombre del elemento contiene puntos, stos se reemplazan por el signo (#). Se supone que ningn elemento contiene un signo # directamente en su nombre. Por ejemplo, el nombre completo del constructor de String sera System.String.#ctor. Para propiedades y mtodos, si existen argumentos para el mtodo, la lista de argumentos que se encuentra entre parntesis aparece a continuacin. Si no existen argumentos, no se escribe ningn parntesis. Los argumentos se separan por comas. La codificacin de cada argumento indica directamente cmo se codifica en una firma de .NET Framework.

Ejemplo
Los siguientes ejemplos muestran cmo se generaran las cadenas de id. para una clase y sus miembros: VB Namespace SampleNamespace ''' <summary>Signature is ''' "T:SampleNamespace.SampleClass" ''' </summary> Public Class SampleClass ''' <summary>Signature is ''' "M:SampleNamespace.SampleClass.#ctor" ''' </summary> Public Sub New() End Sub ''' <summary>Signature is ''' "M:SampleNamespace.SampleClass.#ctor(System.Int32)" ''' </summary> Public Sub New(ByVal i As Integer) End Sub ''' <summary>Signature is ''' "F:SampleNamespace.SampleClass.SampleField" ''' </summary>

Public SampleField As String ''' <summary>Signature is

''' "F:SampleNamespace.SampleClass.SampleConstant" ''' </summary> Public Const SampleConstant As Integer = 42 ''' <summary>Signature is ''' "M:SampleNamespace.SampleClass.SampleFunction" ''' </summary> Public Function SampleFunction() As Integer End Function ''' <summary>Signature is ''' "M:SampleNamespace.SampleClass. ''' SampleFunction(System.Int16[],System.Int32[0:,0:])" ''' </summary> Public Function SampleFunction( ByVal array1D() As Short, ByVal array2D(,) As Integer) As Integer End Function ''' <summary>Signature is ''' "M:SampleNamespace.SampleClass. ''' op_Addition(SampleNamespace.SampleClass, ''' SampleNamespace.SampleClass)" ''' </summary> Public Shared Operator +( ByVal operand1 As SampleClass, ByVal operand2 As SampleClass) As SampleClass Return Nothing End Operator ''' <summary>Signature is ''' "P:SampleNamespace.SampleClass.SampleProperty" ''' </summary> Public Property SampleProperty() As Integer Get End Get Set(ByVal value As Integer) End Set End Property ''' <summary>Signature is ''' "P:SampleNamespace.SampleClass.Item(System.String)" ''' </summary> Default Public ReadOnly Property Item( ByVal s As String) As Integer Get End Get End Property

''' <summary>Signature is ''' "T:SampleNamespace.SampleClass.NestedClass" ''' </summary> Public Class NestedClass End Class ''' <summary>Signature is ''' "E:SampleNamespace.SampleClass.SampleEvent(System.Int32)" ''' </summary> Public Event SampleEvent As SampleDelegate ''' <summary>Signature is ''' "T:SampleNamespace.SampleClass.SampleDelegate" ''' </summary> Public Delegate Sub SampleDelegate(ByVal i As Integer) End Class End Namespace

CMO: CREAR DOCUMENTACIN XML EN VISUAL BASIC


Visual Studio 2010 En este ejemplo se muestra cmo agregar comentarios de documentacin XML al cdigo.

Nota
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edicin de Visual Studio que se tenga y la configuracin que se utilice determinan estos elementos. Para obtener ms informacin, vea Valores de configuracin de Visual Studio.
Para crear documentacin XML para un tipo o miembro
1. 2. En el Editor de cdigo, coloque el cursor en la lnea situada encima del tipo o miembro para el que desea crear la documentacin. Escriba ''' (tres comillas simples). Se agrega una estructura XML para el tipo o miembro en el Editor de cdigo. 3. Agregue informacin descriptiva entre las etiquetas adecuadas.

Nota
Si agrega lneas adicionales dentro del bloque de documentacin XML, cada lnea debe comenzar con '''.

4.

Agregue cdigo adicional que utilice el tipo o miembro con los nuevos comentarios de documentacin XML. IntelliSense muestra el texto de la etiqueta <summary> para el tipo o miembro.

5.

Compile el cdigo para generar un archivo XML que incluya los comentarios de la documentacin. Para obtener ms informacin, vea /doc.

PALABRAS CLAVE COMO NOMBRES DE ELEMENTOS EN CDIGO (VISUAL BASIC)


Visual Studio 2010 Cualquier elemento de programacin (como una variable, una clase o un miembro) puede tener el mismo nombre que una palabra clave restringida. Por ejemplo, puede crear una variable denominada Loop. Sin embargo, para hacer referencia a su versin de la misma (que tiene el mismo nombre que la palabra clave restringida Loop), debe calificarla precedindola de su espacio de nombres completo o debe encerrarla entre corchetes ([ ]), como muestra el ejemplo siguiente. VB ' The following statement precedes Loop with a full qualification string. sampleForm.Loop.Visible = True ' The following statement encloses Loop in square brackets. [Loop].Visible = True Si no hace ninguna de ellas, Visual Basic de por supuesto el uso de la palabra clave Loopintrnseca y produce un error, como en el ejemplo siguiente: ' The following statement causes a compiler error. Loop.Visible = True Puede utilizar corchetes al hacer referencia a formularios y controles, al declarar una variable o al definir un procedimiento con el mismo nombre que una palabra clave restringida. Puede resultar sencillo olvidarse de calificar los nombres o de ponerlos entre corchetes, y con ello provocar errores en el cdigo y dificultar su lectura. Por este motivo, es recomendable que no utilice palabras clave restringidas como nombres de elementos de programa. Sin embargo, si una futura versin de Visual Basic define una nueva palabra clave que entra en conflicto con un nombre de formulario o de control existente, puede utilizar esta tcnica en el momento de actualizar el cdigo para trabajar con la versin nueva.

Nota
El programa tambin puede incluir nombres de elementos proporcionados por otros ensamblados a los que se haya hecho referencia. Si estos nombres estn en conflicto con palabras clave restringidas, colocarlos entre corchetes hace que Visual Basic los interprete como elementos definidos por el programador.

ME, MY, MYBASE Y MYCLASS EN VISUAL BASIC


Visual Studio 2010 Me , My, MyBase y MyClass en Visual Basic tienen nombres similares pero finalidades diferentes. En esta tema se describe cada una de estas entidades para distinguirlas.

Me
La palabra clave Me siempre hace referencia a la instancia especfica de una clase o estructura donde se est ejecutando el cdigo. Me se comporta como una variable de objeto o de estructura que hace referencia a la instancia actual. El uso de la palabra clave Me es especialmente til para transferir informacin acerca de la instancia de una clase o estructura que se est ejecutando actualmente a un procedimiento de otro mdulo, estructura o clase. Por ejemplo, suponga que dispone del siguiente procedimiento en un mdulo. Sub ChangeFormColor(FormName As Form) Randomize() FormName.BackColor = Color.FromArgb(Rnd() * 256, Rnd() * 256, Rnd() * 256) End Sub Puede llamar a este procedimiento y pasar como argumento la instancia actual de la claseForm mediante la instruccin siguiente. ChangeFormColor(Me)

My

La caracterstica My proporciona acceso fcil e intuitivo a una serie de clases de .NET Framework, lo que permite que el usuario de Visual Basic interacte con el equipo, la aplicacin, la configuracin, los recursos, etc.

MyBase
La palabra clave MyBase se comporta como una variable de objeto que hace referencia a la clase base de la instancia actual de una clase. MyBase suele usarse para obtener acceso a los miembros de la clase base que se reemplazan o se sombrean en una clase derivada.MyBase.New se utiliza para llamar explcitamente a un constructor de una clase base desde un constructor de una clase derivada.

MyClass
La palabra clave MyClass se comporta como una variable de objeto que hace referencia a la instancia actual de una clase tal y como se implement originalmente. MyClass es similar aMe, pero todas las llamadas de mtodo realizadas a travs de ella se tratan como si el mtodo fuese NotOverridable.

LIMITACIONES DE VISUAL BASIC


Visual Studio 2010 Las versiones anteriores de Visual Basic aplicaban lmites en el cdigo, como la longitud de los nombres de variable, el nmero de variables permitidas en los mdulos y el tamao de los mdulos. En Visual Basic 2005 se han reducido estas restricciones, lo que proporciona mayor libertad para crear y organizar el cdigo. Los lmites fsicos dependen ms de la memoria en tiempo de ejecucin que de las consideraciones en tiempo de compilacin. Si se utilizan prcticas de programacin prudentes y las aplicaciones grandes se dividen en varias clases y mdulos, hay muy pocas probabilidades de encontrar una limitacin interna en Visual Basic. Las siguientes son algunas limitaciones que podra encontrar en casos extremos: Longitud del nombre. Hay un nmero de caracteres mximo para el nombre de cada elemento de programacin declarado. Este mximo se aplica a toda la cadena de calificacin si el nombre del elemento est completo. Vea Nombres de elementos declarados (Visual Basic). Longitud de la lnea. En una lnea fsica de cdigo fuente, hay un mximo de 65535 caracteres. La lnea de cdigo fuente lgica puede ser ms larga si se utilizan caracteres de continuacin de lnea. Vea Cmo: Interrumpir y combinar instrucciones en cdigo (Visual Basic). Dimensiones de matriz. Hay un nmero mximo de dimensiones que se pueden declarar para una matriz. Esto limita cuntos ndices se pueden utilizar para especificar un elemento de matriz. Vea Dimensiones de matrices en Visual Basic. Longitud de cadena. Hay un nmero mximo de caracteres Unicode que se pueden almacenar en una sola cadena. Vea String (Tipo de datos, Visual Basic). Longitud de cadena del entorno. Hay un mximo de 32768 caracteres para cualquier cadena del entorno que se utilice como argumento de la lnea de comandos. sta es una limitacin de todas las plataformas. Vea Cmo: Obtener acceso a argumentos de la lnea de comandos (Visual Basic).

Vous aimerez peut-être aussi