Está en la página 1de 214

Palabras Clave de Visual Basic 2010

Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Palabras clave de Visual Basic
Las palabras clave siguientes estn reservadas, lo que significa que no se pueden utilizar como
nombres para los elementos de programacin, como son las variables o los procedimientos.
AddHandler AddressOf Alias And
AndAlso As Boolean ByRef
Byte ByVal Call Case
Catch CBool CByte CChar
CDate CDec CDbl Char
CInt Class CLng CObj
Const Continue CSByte CShort
CSng CStr CType CUInt
CULng CUShort Date Decimal
Declare Default Delegate Dim
DirectCast Do Double Each
Else ElseIf End EndIf
Enum Erase Error Event
Exit False Finally For
Friend Function Get GetType
Global GoSub GoTo Handles
If Implements Imports In
Inherits Integer Interface Is
IsNot Let Lib Like
Long Loop Me Mod
Module MustInherit MustOverride MyBase
MyClass Namespace Narrowing New
Next Not Nothing NotInheritable
NotOverridable Object Of On
Operator Option Optional Or
OrElse Overloads Overridable Overrides
ParamArray Partial Private Property
Protected Public RaiseEvent ReadOnly
ReDim REM RemoveHandler Resume
Return SByte Select Set
Shadows Shared Short Single
Static Step Stop String
Structure Sub SyncLock Then
Throw To True Try
TryCast TypeOf Variant Wend
UInteger ULong UShort Using
When While Widening With
WithEvents WriteOnly Xor #Const
#Else #ElseIf #End #If
- & &= *
*= / /= \
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

\= ^ ^= +
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

AddHandler (Instruccin)
Asocia un evento a un controlador de eventos en tiempo de ejecucin.

AddHandler event, AddressOf eventhandler

Partes

Event Nombre del evento que se va a controlar.
Eventhandler Nombre del procedimiento que controlar el evento.
Descripcin
Las instrucciones AddHandler y RemoveHandler permiten iniciar y detener el controlador del
evento en cualquier momento de la ejecucin del programa. La firma del
procedimiento eventhandler debe coincidir con la firma del evento event. La palabra
clave Handles y la instruccin AddHandler permiten especificar que ciertos procedimientos
controlen eventos determinados, pero hay diferencias entre ambos. La
instruccinAddHandler conecta los procedimientos a los eventos en tiempo de ejecucin. Utilice la
palabra clave Handles al definir un procedimiento para especificar que controla un evento
determinado.
Ejemplo:
Sub TestEvents()
Dim Obj As New Class1
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
' Call the method to raise the event.
Obj.CauseSomeEvent()
' Stop handling events.
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
' This event will not be handled.
Obj.CauseSomeEvent()
End Sub

Sub EventHandler()
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub

Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


AddressOf (Operador)
Crea una instancia de delegado del procedimiento que hace referencia al procedimiento especfico.
AddHandler event, AddressOf eventhandler
Partes
event Nombre del evento que se va a controlar.
eventhandler Nombre del procedimiento que controlar el evento.
Descripcin:
Las instrucciones AddHandler y RemoveHandler permiten iniciar y detener el controlador del
evento en cualquier momento de la ejecucin del programa.
La firma del procedimiento eventhandler debe coincidir con la firma del evento event.
La palabra clave Handles y la instruccin AddHandler permiten especificar que ciertos
procedimientos controlen eventos determinados, pero hay diferencias entre ambos. La instruccin
AddHandler conecta los procedimientos a los eventos en tiempo de ejecucin. Utilice la palabra
clave Handles al definir un procedimiento para especificar que controla un evento determinado.
En los eventos personalizados, la instruccin AddHandler invoca al descriptor de acceso
AddHandler del evento.
Ejemplo:
Sub TestEvents()
Dim Obj As New Class1
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
' Call the method to raise the event.
Obj.CauseSomeEvent()
' Stop handling events.
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
' This event will not be handled.
Obj.CauseSomeEvent()
End Sub

Sub EventHandler()
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub

Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class
...
Alias
Indica que un procedimiento externo tiene un nombre diferente en su archivo DLL.
La palabra clave Alias se puede utilizar en este contexto: Declare (Instruccin)

And
Realiza una conjuncin lgica entre dos expresiones Boolean o una conjuncin bit a bit entre dos
expresiones numricas.
result = expression1 And expression2

Partes:

result
Obligatorio. Cualquier expresin numrica o de tipo Boolean. Para la comparacin
booleana, result es la conjuncin lgica de dos valores Boolean. Para las operaciones bit a
bit,result es un valor numrico que representa la conjuncin bit a bit de dos modelos de bits
numricos.
expression1
Obligatorio. Cualquier expresin numrica o de tipo Boolean.
expression2
Obligatorio. Cualquier expresin numrica o de tipo Boolean.
Descripcin:
Para la comparacin booleana, result es True si y slo si expression1 y expression2 se evalan
como True. La tabla siguiente ilustra cmo se determina el argumento result.
Si expression1 es: Y expression2 es El valor de result es
True True True
True False False
False True False
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

False False False
Aplicado a valores numricos, el operador And realiza una comparacin bit a bit de los bits
ubicados de manera idntica en dos expresiones numricas y establece el bit correspondiente
enresult de acuerdo con la siguiente tabla:
Si el bit de expression1 es... Y el bit de expression2 es... El bit de result es...
1 1 1
1 0 0
0 1 0
0 0 0
Tipos de datos
Si los operandos constan de una expresin Boolean y una expresin numrica, Visual Basic
convierte la expresin Boolean a un valor numrico (1 para True y 0 para False), y realiza una
operacin bit a bit.
Para una comparacin booleana, el tipo de datos del resultado es Boolean. Para una comparacin
bit a bit, el tipo de datos del resultado es un tipo numrico adecuado para los tipos de datos
de expression1 y expression2. Vea la tabla "Comparaciones relacionales y bit a bit" en Tipos de
datos de resultados de operador.
Ejemplo 1:
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c
Ejemplo 2:
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a And b)
secondPattern = (a And c)
thirdPattern = (b And c)

AndAlso (Operador)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Realiza una conjuncin lgica "cortocircuitada" en dos expresiones.
result = expression1 AndAlso expression2

Partes:
result
Obligatoria. Cualquier expresin de tipo Boolean. El resultado ser el
resultado Boolean de comparar ambas expresiones.
expression1
Obligatoria. Cualquier expresin de tipo Boolean.
expression2
Obligatoria. Cualquier expresin de tipo Boolean.
Descripcin
Se dice que una operacin lgica se encuentra cortocircuitada si el cdigo compilado puede omitir
la evaluacin de una expresin en funcin del resultado de otra. Si el resultado de la primera
expresin evaluada determina el resultado final de la operacin, no es necesario evaluar la
segunda expresin, ya que no cambiar el resultado final. La evaluacin cortocircuitada puede
mejorar el rendimiento si la expresin omitida es compleja o si implica llamadas de procedimiento.
Si ambas expresiones se evalan como True, result es True. En la tabla siguiente se ilustra cmo
se determina el argumento result.
Si expression1 es: Y expression2 es El valor de result es:
True True True
True False False
False (no se evala) False
Una utilidad del operador AndAlso es probar la existencia de una instancia de objeto antes de
intentar tener acceso a uno de sus miembros. En la siguiente lnea se muestra cmo hacerlo:
If newObject AndAlso newObject.initFinished Then
El acceso a la propiedad initFinished en la lnea de cdigo anterior podra producir una
excepcin NullReferenceException si la variable newObject no tiene una instancia de objeto
asignada. Sin embargo, el operador AndAlso hace que el compilador omita el acceso
a initFinished si newObject es Nothing, porque Nothing se evala como False.
Tipos de datos
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El operador AndAlso slo se define para Boolean (Tipo de datos, Visual Basic). Visual Basic
convierte cada operando segn sea necesario a Boolean y lleva a cabo toda la operacin
enBoolean. Si asigna el resultado a un tipo numrico, Visual Basic lo convierte de Boolean a ese
tipo. Esto podra generar un comportamiento inesperado. Por ejemplo, 5 AndAlso 12 da como
resultado 1 cuando se convierte a Integer.
Sobrecarga
Los operadores And (Operador, Visual Basic) e IsFalse (Operador) se pueden sobrecargar, lo que
significa que una clase o estructura puede definir de nuevo su comportamiento cuando un
operando pertenece al tipo de dicha clase o estructura. La sobrecarga de los
operadores And y IsFalse afecta el comportamiento del operador AndAlso. Si el cdigo
utiliza AndAlso en una clase o estructura que sobrecarga And y IsFalse, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin.
Ejemplo:
Public Function findValue(ByVal arr() As Double, _
ByVal searchValue As Double) As Double
Dim i As Integer = 0
While i <= UBound(arr) AndAlso arr(i) <> searchValue
' If i is greater than UBound(arr), searchValue is not checked.
i += 1
End While
If i > UBound(arr) Then i = -1
Return i
End Function

As
Introduce una clusula As, que identifica un tipo de datos en una instruccin de declaracin o una
lista de restricciones en un parmetro de tipo genrico.
Descripcin:
La palabra clave As se puede utilizar en estos contextos:
Class (Instruccin)
Const (Instruccin)
Declare (Instruccin)
Delegate (Instruccin)
Dim (Instruccin)
Enum (Instruccin)
Event (Instruccin)
For...Next (Instrucciones)
For Each...Next (Instrucciones)
Function (Instruccin)
Interface (Instruccin)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Operator (Instruccin)
Property (Instruccin)
Structure (Instruccin)
Sub (Instruccin)
Try...Catch...Finally (Instrucciones)

Boolean
Contiene valores que pueden ser slo True o False. Las palabras
clave True y False corresponden a los dos estados de las variables Boolean.
Utilice el tipo de datos Boolean para contener valores de dos estados como
verdadero/falso, s/no o activado/desactivado.
El valor predeterminado de Boolean es False.
Conversiones de tipo
Cuando Visual Basic convierte los valores de tipos de datos numricos en Boolean, 0 pasa a ser
False y todos los otros valores, True. Cuando Visual Basic convierte los valores Boolean en tipos
numricos, False pasa a ser 0 y True, -1.
Al convertir entre valores Boolean y tipos de datos numricos, recuerde que los mtodos de
conversin de .NET Framework no siempre producen los mismos resultados que las palabras clave
de conversin de Visual Basic. Esto se debe a que la conversin de Visual Basic conserva un
comportamiento compatible con versiones anteriores. Para obtener ms informacin, vea
Solucionar problemas de tipos de datos.
Sugerencias de programacin
Nmeros negativos.Boolean no es un tipo numrico y no puede representar un valor negativo. En
cualquier caso, no debera utilizar Boolean para contener valores numricos.
Caracteres de tipo.Boolean no tiene ningn carcter de tipo de literal o de tipo de identificador.
Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.Boolean.
Ejemplo:
Dim runningVB As Boolean
' Check to see if program is running on Visual Basic engine.
If scriptEngine = "VB" Then
runningVB = True
End If

ByRef
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Indica que un argumento se pasa de tal forma que el procedimiento al que se ha llamado puede
cambiar el valor de una variable subyacente al argumento en el cdigo que realiza la llamada.
Descripcin:
El modificador ByRef se puede utilizar en estos contextos:
Declare (Instruccin)
Function (Instruccin)
Sub (Instruccin)


Byte
Contiene enteros de 8 bits sin signo (1 bytes) que se sitan en el intervalo entre 0 y 255.
Utilice el tipo de datos Byte para contener datos binarios.
El valor predeterminado de Byte es 0.
Sugerencias de programacin
Nmeros negativos. Dado que Byte es un tipo sin signo, no puede representar un nmero negativo.
Si utiliza el operador menos (-) unario en una expresin que produce un resultado del tipo Byte,
Visual Basic convierte primero la expresin a Short.
Conversiones de formato. Cuando Visual Basic lee o escribe archivos o cuando llama a archivos
DLL, mtodos y propiedades, puede convertir automticamente entre los formatos de datos. Los
datos binarios almacenados en variables Byte y matrices se conservan durante estas conversiones
de formato. No debera utilizar una variable String para datos binarios, ya que su contenido puede
daarse durante la conversin entre los formatos ANSI y Unicode.
Ampliacin. El tipo de datos Byte se ampla a Short, UShort, Integer y UInteger, Long, ULong,
Decimal, Single y Double. Esto significa que se puede convertir Byte en cualquiera de estos tipos
sin encontrar un error System.OverflowException.
Caracteres de tipo.Byte no tiene ningn carcter de tipo de literal o de tipo de identificador.
Tipo en Framework. El tipo correspondiente en .NET Framework es la estructura System.Byte.

ByVal
Indica que un argumento se pasa de tal forma que el procedimiento o la propiedad a la que se ha
llamado no puede cambiar el valor de una variable subyacente al argumento en el cdigo que
realiza la llamada.
Descripcin:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El modificador ByVal se puede utilizar en estos contextos:
Declare (Instruccin)
Instruccin Function (Visual Basic)
Operator (Instruccin)
Property (Instruccin)
Instruccin Sub (Visual Basic)

Call
Transfiere el control a un procedimiento Function, a un procedimiento Sub o a un procedimiento de
la biblioteca de vnculos dinmicos (DLL).
[ Call ] procedureName [ (argumentList) ]

Partes

procedureName
Obligatorio. Nombre del procedimiento al que se llama.
argumentList
Opcional. Lista de variables o expresiones que representan los argumentos que se pasan
al procedimiento cuando se le llama. Los argumentos mltiples se separan por comas. Si
se incluye argumentList, debe encerrarlo entre parntesis.

Descripcin:
Normalmente utiliza la instruccin Call para llamar a un procedimiento que no devuelve un valor. Si
el procedimiento devuelve un valor, la instruccin Call lo descarta.
No se exige que utilice la instruccin Call al llamar a un procedimiento. Sin embargo, mejora la
legibilidad del cdigo.
Ejemplo:
En este ejemplo se muestra cmo utilizar la instruccin Call para transferir el control a un
procedimiento Sub, a una funcin intrnseca y a un procedimiento de biblioteca de vnculos
dinmicos (DLL).
' (1) Call a Sub procedure.
Call printToDebugWindow("Hello World")
...
' The above statement passes control to the following Sub procedure.
Sub printToDebugWindow(ByVal anyString As String)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Debug.WriteLine(anyString)
End Sub

' (2) Call a Visual Basic run-time function (Shell), discard the return value.
Call Shell("C:\WINNT\system32\calc.exe", AppWinStyle.NormalFocus)
' The preceding path is for Windows 2000;
' The Windows XP path is C:\Windows\system32\calc.exe.

' (3) Call a Microsoft Windows DLL procedure. The Declare statement
' must be Private in a class, not in a module.
Private Declare Sub MessageBeep Lib "User32" (ByVal N As Integer)
Sub callBeepDll()
Call MessageBeep(-1)
End Sub


Case
Define un valor o un conjunto de valores con el que se prueba el valor de una expresin.
La palabra clave Case se puede utilizar en este contexto:
Select...Case (Instruccin)

Instruccin Try...Catch...Finally
Esta instruccin proporciona una manera de controlar algunos o todos los errores posibles que
pueden ocurrir en un bloque de cdigo determinado mientras se ejecuta el cdigo.
Partes:
tryStatements
Opcional. Instrucciones en las que puede ocurrir un error. Puede ser una instruccin
compuesta.
Catch
Opcional. Se permite utilizar varios bloques Catch. Si tiene lugar una excepcin mientras
se procesa el bloque Try, cada instruccin Catch se examina en orden textual para
determinar si controla la excepcin; el parmetro exception representa la excepcin que se
ha producido.
exception
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Cualquier nombre de variable. El valor inicial de exception es el valor del error
producido. Se utiliza con Catch para especificar la captura del error. Si se omite, la
instruccinCatch detecta cualquier excepcin.
type
Opcional. Especifica el tipo de filtro de clase. Si el valor de exception es del tipo
especificado en type o de un tipo derivado, el identificador queda enlazado al objeto de
excepcin.
When
Opcional. Una instruccin Catch con una clusula When slo detecta las excepciones
cuando expression se evala como True. Una clusula When slo se aplica despus de
comprobar el tipo de la excepcin y expression puede hacer referencia al identificador que
representa la excepcin.
expression
Opcional. Debe ser convertible implcitamente a Boolean. Cualquier expresin que
describe un filtro genrico. Se utiliza normalmente para filtrar por nmero de error. Se
utiliza con la palabra clave When para especificar las circunstancias bajo las que se
captura el error.
catchStatements
Opcional. Instrucciones para controlar los errores que se producen en el bloque Try. Puede
ser una instruccin compuesta.
Exit Try
Opcional. Palabra clave que interrumpe la ejecucin de la estructura Try...Catch...Finally.
La ejecucin se reanuda con el cdigo que sigue inmediatamente a la instruccin End Try.
Se ejecutar la instruccin Finally todava. No se permite en bloques Finally.
Finally
Opcional. Siempre se ejecuta un bloque Finally cuando la ejecucin sale de cualquier
parte de la instruccin Try.
finallyStatements
Opcional. Instrucciones que se ejecutan despus de las dems operaciones de
procesamiento de error.
End Try
Finaliza la estructura Try...Catch...Finally.
Descripcin:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Las variables locales de un bloque Try no se encuentran disponibles en un bloque Catch porque se
trata de bloques independientes. Si se desea utilizar una variable en ms de un bloque, se debe
declarar la variable fuera de la estructura Try...Catch...Finally.
El bloque Try contiene cdigo donde puede producirse un error, mientras que el bloque Catch
contiene el cdigo para controlar cualquier error que tenga lugar. Si se produce un error en el
bloque Try, el control del programa pasa a la instruccin Catch apropiada para su procesamiento.
El argumento exception es una instancia de la clase Exception o una clase que se deriva de la
clase Exception. La instancia de la clase Exception corresponde al error que se produjo en el
bloque Try. La instancia contiene informacin acerca del error, como el nmero de error y el
mensaje.
Si una instruccin Catch no especifica un argumento exception, detectar cualquier tipo de
excepcin del sistema o de la aplicacin. Esta variacin debe utilizarse siempre como el ltimo
bloque Catch en la estructura Try...Catch...Finally, despus de detectar todas las excepciones
especficas anticipadas. El flujo de control nunca puede alcanzar un bloque Catch situado detrs
de Catch sin un argumento exception.
En situaciones de confianza parcial, como una aplicacin alojada en un recurso compartido de red,
Try...Catch...Finally no detectar las excepciones de seguridad que se produzcan antes de invocar
al mtodo que contiene la llamada. El ejemplo siguiente, si se coloca en un recurso compartido de
servidor y se ejecuta desde el mismo, producir el error: "Sub System.Security.SecurityException:
Error de solicitud".
Ejemplo:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Try
Process.Start("http://www.microsoft.com")
Catch ex As Exception
MsgBox("Can't load Web page" & vbCrLf & ex.Message)
End Try
End Sub
..
CBol
Estas funciones se compilan en lnea, es decir, el cdigo de conversin forma parte del cdigo que
evala la expresin. A veces no se produce una llamada a un procedimiento para realizar la
conversin, lo que mejora el rendimiento. Cada funcin convierte una expresin a un tipo de datos
especfico.
CBool(expression)
CByte(expression)
CChar(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

CLng(expression)
CObj(expression)
CSByte(expression)
CShort(expression)
CSng(expression)
CStr(expression)
CUInt(expression)
CULng(expression)
CUShort(expression)
Parte:
expression
Obligatoria. Cualquier expresin del tipo de datos de origen.
l nombre de funcin determina el tipo de datos del valor devuelto, como se muestra en la tabla
siguiente.
Nombre
de la
funcin
Tipo de datos
devuelto
Intervalo de valores del argumento expression
CBool Boolean (Tipo de
datos, Visual Basic)
Cualquier expresin numrica, Char o String vlida.
CByte Byte (Tipo de datos,
Visual Basic)
0 a 255 (sin signo); las partes fraccionarias se redondean.
1

CChar Char (Tipo de datos,
Visual Basic)
Cualquier expresin Char o String vlida; slo se convierte el
primer carcter de String; el valor puede estar comprendido
entre 0 y 65535 (sin signo).
CDate Date (Tipo de datos,
Visual Basic)
Cualquier representacin vlida de fecha y hora.
CDbl Double (Tipo de
datos, Visual Basic)
de -1,79769313486231570E+308 a -4,94065645841246544E-
324 para valores negativos; de 4,94065645841246544E-324 a
1,79769313486231570E+308 para valores positivos.
CDec Decimal (Tipo de
datos, Visual Basic)
+/-79.228.162.514.264.337.593.543.950.335 para nmeros a
partir de cero, es decir, nmeros sin decimales. Para nmeros
con 28 posiciones decimales, el intervalo es +/-
7,9228162514264337593543950335. El menor nmero posible
distinto de cero es 0,0000000000000000000000000001 (+/-
1E-28).
CInt Integer (Tipo de
datos, Visual Basic)
de -2.147.483.648 a 2.147.483.647; las partes fraccionarias se
redondean.
1

CLng Long (Tipo de datos, de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807;
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Visual Basic) las partes fraccionarias se redondean.
1

CObj Object (Tipo de
datos)
Cualquier expresin vlida.
CSByte SByte (Tipo de datos,
Visual Basic)
de -128 a 127; las partes fraccionarias se redondean.
1

CShort Short (Tipo de datos,
Visual Basic)
de -32.768 a 32.767; las partes fraccionarias se redondean.
1

CSng String (Tipo de datos,
Visual Basic)
De -3,402823E+38 a 1,401298E-45 para valores negativos;
de 1,401298E-45 a 3,402823E+38 para valores positivos.
CStr String (Tipo de datos,
Visual Basic)
Los valores devueltos para CStr dependen del
argumento expression. Vea Valores devueltos para la funcin
CStr.
CUInt UInteger (Tipo de
datos)
de 0 a 4.294.967.295 (sin signo); las partes fraccionarias se
redondean.
1

CULng ULong (Tipo de
datos, Visual Basic)
de 0 a 18.446.744.073.709.551.615 (sin signo); las partes
fraccionarias se redondean.
1

CUShort UShort (Tipo de
datos, Visual Basic)
de 0 a 65.535 (sin signo); las partes fraccionarias se
redondean.
1

1
Las partes fraccionarias pueden estar sujetas a un tipo especial de redondeo
denominado redondeo bancario. Vea "Comentarios" para obtener ms informacin.
Descripcin
Por regla general, debe utilizar preferentemente las funciones de conversin de tipos de Visual
Basic que los mtodos de .NET Framework, como ToString(), en la clase Convert o en una clase o
estructura individual de tipos. Las funciones de Visual Basic se han diseado para que interacten
de forma ptima con el cdigo de Visual Basic; adems hacen que el cdigo fuente sea ms corto
y fcil de leer. Asimismo, los mtodos de conversin de .NET Framework no siempre producen los
mismos resultados que las funciones de Visual Basic, por ejemplo cuando se convierte
de Boolean a Integer. Para obtener ms informacin, vea Solucionar problemas de tipos de datos.
Comportamiento
Conversin. En general, puede utilizar las funciones de conversin de tipos de datos para
convertir el resultado de una operacin a un tipo de datos concreto en vez de al tipo de
datos predeterminado. Por ejemplo, utilice CDec para forzar la ejecucin de operaciones
con aritmtica decimal en los casos en los que se hara con precisin simple, doble precisin
o aritmtica de enteros.
Conversiones incorrectas. Si el argumento expression transferido a la funcin est fuera
del intervalo de valores del tipo de datos al que se va a convertir, se inicia una
excepcinOverflowException.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Partes fraccionarias. Cuando un valor no integral se convierte a un tipo integral, las
funciones de conversin de enteros
(CByte, CInt, CLng, CSByte, CShort, CUInt, CULng y CUShort) eliminan la parte
fraccionaria y redondean el valor al entero ms prximo.
Si la parte fraccionaria es exactamente 0,5, las funciones de conversin de enteros lo
rodean al entero par ms prximo. Por ejemplo, 0,5 se redondea a 0, y 1,5 y 2,5 se
redondean a 2. En ocasiones, esto se denomina redondeo bancario, y su finalidad es
compensar el margen de error que se pudiera acumular al sumar muchos nmeros de este
tipo.
CInt y CLng difieren de Int, Fix (Funciones, Visual Basic), que, en lugar de redondear,
trunca la parte fraccionaria de un nmero. Adems, Fix e Int siempre devuelven un valor del
mismo tipo de datos que reciben.
Conversiones de fecha y hora. Utilice IsDate (Funcin, Visual Basic) para determinar si un
valor se puede convertir a una fecha y hora. CDate reconoce literales de fecha y de hora,
pero no valores numricos. Para convertir un valor Date de Visual Basic 6.0 en un
valor Date de Visual Basic 2005, puede utilizar el
mtodoSystem.DateTime.FromOADate(System.Double).
Valores de fecha u hora neutrales. El tipo de datos Date (Tipo de datos, Visual
Basic) contiene siempre informacin de fecha y hora. Para la conversin de tipos, Visual
Basic considera 1/1/0001 (1 de enero del ao 1) un valor neutral de fecha y 00:00:00
(medianoche) un valor neutral de hora. Si se convierte un valor Date a una cadena, CStr no
incluye valores neutrales en la cadena resultante. Por ejemplo, si se convierte #January 1,
0001 9:30:00# en una cadena, el resultado sera "9:30:00 a.m.", ya que la informacin de
fecha se omite. No obstante, la informacin de fecha sigue estando presente en el
valor Date original y se puede recuperar mediante funciones como DatePart (Funcin, Visual
Basic).
Distincin de referencias culturales. Las funciones de conversin de tipos que implican
cadenas realizan las conversiones en funcin de la configuracin de la referencia cultural
actual de la aplicacin. Por ejemplo, CDate reconoce formatos de fecha de acuerdo con la
configuracin regional del sistema. Debe suministrar el da, mes y ao en el orden correcto
para la configuracin regional; de no hacerlo as, es posible que la fecha no se interprete de
forma correcta. No se puede reconocer un formato de fecha largo si contiene la cadena del
da de la semana, por ejemplo Mircoles.
Si necesita convertir una representacin de cadena de un valor en un formato diferente al
especificado por la configuracin regional, no puede utilizar las funciones de conversin de
tipos de Visual Basic. Para ello, utilice los
mtodos ToString(IFormatProvider) y Parse(String, IFormatProvider) de ese tipo de valor.
Por ejemplo, utiliceSystem.Double.Parse(System.String,System.IFormatProvider) cuando
convierte una cadena a un valor de tipo Double y
utilice System.Double.ToString(System.IFormatProvider) cuando convierta un valor de
tipo Double en una cadena.
CType (Funcin)
La funcin CType toma un segundo argumento, typename, y convierte expression en typename,
donde typename puede ser cualquier tipo de datos, estructura, clase o interfaz para la que exista
una conversin vlida.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Para una comparacin de CType con otras palabras clave de conversin de tipos,
vea DirectCast y TryCast.
Ejemplo de la funcin CBool
En este ejemplo se utiliza la funcin CBool para convertir expresiones en valores Boolean. Si una
expresin se evala en un valor distinto de cero, CBool devuelve True; en caso contrario,
devuelve False.
Dim a, b, c As Integer
Dim check As Boolean
a = 5
b = 5
' The following line of code sets check to True.
check = CBool(a = b)
c = 0
' The following line of code sets check to False.
check = CBool(c)

Ejemplo de la funcin CByte
En este ejemplo se utiliza la funcin CByte para convertir expresiones en Byte.
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)

Ejemplo de la funcin CChar
En el ejemplo siguiente se utiliza la funcin CChar para convertir el primer carcter de una
expresin String en un tipo Char.
Dim aString As String
Dim aChar As Char
' CChar converts only the first character of the string.
aString = "BCD"
' The following line of code sets aChar to "B".
aChar = CChar(aString)

El argumento de entrada para CChar debe pertenecer al tipo de datos Char o String. No puede
utilizar CChar para convertir un nmero en un carcter, porque CChar no acepta un tipo de datos
numricos. En el ejemplo siguiente se obtiene un nmero que representa un punto de cdigo
(cdigo de carcter) y se convierte al carcter correspondiente. En el ejemplo se utilizaInputBox
(Funcin, Visual Basic) para obtener la cadena de dgitos, CInt para convertir la cadena en el
tipo Integer y ChrW para convertir el nmero en el tipo Char.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Dim someDigits As String
Dim codePoint As Integer
Dim thisChar As Char
someDigits = InputBox("Enter code point of character:")
codePoint = CInt(someDigits)
' The following line of code sets thisChar to the Char value of codePoint.
thisChar = ChrW(codePoint)

Ejemplo de la funcin CDate
En este ejemplo se utiliza la funcin CDate para convertir cadenas en valores Date. En general, no
se recomienda especificar las fechas y horas como cadenas en el cdigo, tal y como se puede ver
en este ejemplo. Utilice literales de fecha y hora, por ejemplo #Feb 12, 1969# y #4:45:233 p.m.#.
Dim aDateString, aTimeString As String
Dim aDate, aTime As Date
aDateString = "February 12, 1969"
aTimeString = "4:35:47 PM"
' The following line of code sets aDate to a Date value.
aDate = CDate(aDateString)
' The following line of code sets aTime to Date value.
aTime = CDate(aTimeString)

Ejemplo de la funcin CDbl
Dim aDec As Decimal
Dim aDbl As Double
' The following line of code uses the literal type character D to make aDec a De
cimal.
aDec = 234.456784D
' The following line of code sets aDbl to 1.9225456288E+1.
aDbl = CDbl(aDec * 8.2D * 0.01D)

Ejemplo de la funcin CDec
En el siguiente ejemplo se utiliza la funcin CDec para convertir un valor numrico en Decimal.
Dim aDouble As Double
Dim aDecimal As Decimal
aDouble = 10000000.0587
' The following line of code sets aDecimal to 10000000.0587.
aDecimal = CDec(aDouble)

Ejemplo de la funcin CInt
En este ejemplo se utiliza la funcin CInt para convertir un valor a Integer.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Dim aDbl As Double
Dim anInt As Integer
aDbl = 2345.5678
' The following line of code sets anInt to 2346.
anInt = CInt(aDbl)

Ejemplo de la funcin CLng
En el ejemplo siguiente se utiliza la funcin CLng para convertir valores a Long.
Dim aDbl1, aDbl2 As Double
Dim aLng1, aLng2 As Long
aDbl1 = 25427.45
aDbl2 = 25427.55
' The following line of code sets aLng1 to 25427.
aLng1 = CLng(aDbl1)
' The following line of code sets aLng2 to 25428.
aLng2 = CLng(aDbl2)

Ejemplo de la funcin CObj
En el siguiente ejemplo se utiliza la funcin CObj para convertir un valor numrico en Object. La
variable Object en s contiene slo un puntero de cuatro bytes, que seala al valor Doubleque
tiene asignado.
Dim aDouble As Double
Dim anObject As Object
aDouble = 2.7182818284
' The following line of code sets anObject to a pointer to aDouble.
anObject = CObj(aDouble)

Ejemplo de CSByte
En el siguiente ejemplo se utiliza la funcin CSByte para convertir un valor numrico en SByte.
Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' The following line of code sets anSByte to 40.
anSByte = CSByte(aDouble)

Ejemplo de la funcin CShort
En el siguiente ejemplo se utiliza la funcin CShort para convertir un valor numrico en Short.
Dim aByte As Byte
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Dim aShort As Short
aByte = 100
' The following line of code sets aShort to 100.
aShort = CShort(aByte)

Ejemplo de la funcin CSng
En el ejemplo siguiente se utiliza la funcin CSng para convertir valores a Single.
Dim aDouble1, aDouble2 As Double
Dim aSingle1, aSingle2 As Single
aDouble1 = 75.3421105
aDouble2 = 75.3421567
' The following line of code sets aSingle1 to 75.34211.
aSingle1 = CSng(aDouble1)
' The following line of code sets aSingle2 to 75.34216.
aSingle2 = CSng(aDouble2)

Ejemplo de la funcin CStr
En el siguiente ejemplo se utiliza la funcin CStr para convertir un valor numrico en String.
Dim aDouble As Double
Dim aString As String
aDouble = 437.324
' The following line of code sets aString to "437.324".
aString = CStr(aDouble)

En el ejemplo siguiente se utiliza la funcin CStr para convertir valores Date en valores String.
Dim aDate As Date
Dim aString As String
' The following line of code generates a COMPILER ERROR because of invalid forma
t.
' aDate = #February 12, 1969 00:00:00#
' Date literals must be in the format #m/d/yyyy# or they are invalid.
' The following line of code sets the time component of aDate to midnight.
aDate = #2/12/1969#
' The following conversion suppresses the neutral time value of 00:00:00.
' The following line of code sets aString to "2/12/1969".
aString = CStr(aDate)
' The following line of code sets the time component of aDate to one second past
midnight.
aDate = #2/12/1969 12:00:01 AM#
' The time component becomes part of the converted value.
' The following line of code sets aString to "2/12/1969 12:00:01 AM".
aString = CStr(aDate)

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

CStr siempre representa un valor Date en el formato corto estndar de la configuracin regional
actual, por ejemplo, "15/6/2003 4:35:47 p.m.". Sin embargo, CStr suprime los valores
neutrales 1/1/0001 para la fecha y 00:00:00 para la hora.
Para obtener informacin detallada sobre los valores devueltos por CStr, vea Valores devueltos
para la funcin CStr.
Ejemplo de CUInt
En el siguiente ejemplo se utiliza la funcin CUInt para convertir un valor numrico en UInteger.
Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' The following line of code sets aUInteger to 40.
aUInteger = CUInt(aDouble)

Ejemplo de CULng
En el siguiente ejemplo se utiliza la funcin CULng para convertir un valor numrico en ULong.
Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' The following line of code sets aULong to 40.
aULong = CULng(aDouble)

Ejemplo de CUShort
En el siguiente ejemplo se utiliza la funcin CUShort para convertir un valor numrico en UShort.
Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' The following line of code sets aUShort to 40.
aUShort = CUShort(aDouble)



Date (Tipo de datos, Visual Basic)

Contiene valores IEEE de 64 bits (8 bytes) que representan fechas comprendidas entre el 1 de ene
ro del ao 0001 y el 31 de diciembre de 9999, y horas comprendidas entre las 0:00:00 (medianoch
e) y las 11:59:59. Cada incremento representa 100 nanosegundos de tiempo transcurrido desde el
comienzo del 1 de enero del ao 1 del calendario gregoriano. El valor mximo representa 100 nano
segundos antes del comienzo del 1 de enero del ao 10000.

Descripcin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Utilice el tipo de datos Date para albergar valores de fecha, valores de tiempo o valores de
fecha y hora.

El valor predeterminado de Date es 0:00:00 (medianoche) del 1 de enero de 0001.

Requisitos de formato

Debe incluir un literal Date dentro de los signos de nmero (# #). Debe especificar el valor de fecha
en el formato M/d/yyyy, por ejemplo #5/31/1993#. Este requisito es independiente de la configuraci
n regional y de la configuracin de formato de fecha y hora del equipo.

El motivo de esta restriccin es que el significado del cdigo nunca debe cambiar en funcin de la c
onfiguracin regional en que se ejecuta la aplicacin. Suponga que asigna un literal Date de #3/4/1
998# para representar 4 de marzo de 1998. En una configuracin regional que utilice el formato m
m/dd/yyyy, 3/4/1998 se compila como desee. Pero suponga que implementa la aplicacin en varios
pases. En una configuracin regional que utilice el formato dd/mm/yyyy, el literal incluido en el cdi
go se compilar como Abril 3, 1998. En una configuracin local que utilice el formato yyyy/mm/dd, e
l literal podra no ser vlido (Abril 1998, 0003) y generar un error de compilacin.
Soluciones
Para convertir un literal de tipo Date al formato de la configuracin regional o a un formato
personalizado, proporcione el literal a la funcin Format (Funcin) especificando Formatos de fecha
y hora predefinidos (Funcin Format) o Formatos de fecha y hora definidos por el usuario (Funcin
Format). En el siguiente ejemplo se muestra esta operacin.
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))
Si lo desea, puede utilizar tambin uno de los constructores sobrecargados de la
estructura DateTime para ensamblar un valor de fecha y hora. En el ejemplo siguiente se crea un
valor para representar Mayo 31, 1993 a las 12:14 del medioda.
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
Formato de hora
Puede especificar el valor de hora con un formato de 12 horas o de 24 horas, por ejemplo #1:15:30
PM# o #13:15:30#. Sin embargo, si no especifica los minutos ni los segundos, debe especificar
a.m. o p.m.
Valores predeterminados de fecha y hora
Si no se incluye una fecha en un literal de fecha/hora, Visual Basic establece la parte de fecha del
valor en Enero 1, 0001.Si no se incluye una hora en un literal de fecha y hora, Visual Basic
establece la parte de hora del valor en el inicio del da, es decir, medianoche (0:00:00).
Conversiones de tipo
Si convierte un valor Date al tipo String, Visual Basic representa la fecha en funcin del formato
corto de fecha especificado por la configuracin regional en tiempo de ejecucin, y representa la
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

hora de acuerdo con el formato de hora (12 o 24 horas) especificado por la configuracin regional
en tiempo de ejecucin.
Sugerencias de programacin
Consideraciones de interoperabilidad. Si est interactuando con componentes que no se
han escrito para .NET Framework, por ejemplo objetos de automatizacin u objetos COM,
tenga presente que los tipos de fecha y hora definidos en otros entornos no son compatibles
con el tipo Date de Visual Basic. Al transferir un argumento de fecha y hora a un
componente de este tipo, declrelo como Double en lugar de Date en el nuevo cdigo de
Visual Basic, y utilice los mtodos de
conversinSystem.DateTime.FromOADate(System.Double) y System.DateTime.ToOADate.
Caracteres de tipo.Date no tiene caracteres de tipo de literal ni caracteres de tipo de
identificador. Sin embargo, el compilador trata los literales incluidos entre caracteres de
signo de nmero (# #) como Date.
Tipo de marco de trabajo. El tipo correspondiente en .NET Framework es la
estructura System.DateTime.
Ejemplo
Una variable o constante del tipo de datos Date contiene tanto la fecha como la hora. Esto se
ilustra en el siguiente ejemplo:
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#


Decimal (Tipo de datos, Visual Basic)

Contiene valores de 128 bits con signo (16 bytes) que representan nmeros enteros de 96 bits (12
bytes) que se ajustan a una potencia variable de 10. El factor de ajuste especifica el nmero de dg
itos a la derecha del separador decimal; comprendidos entre 0 y 28. Con un ajuste de 0 (sin decim
ales), el valor ms grande posible es +/-79,228,162,514,264,337,593,543,950,335 (+/-7.922816251
4264337593543950335E+28). Con 28 posiciones decimales, el valor ms grande es +/-7.9228162
514264337593543950335 y el valor ms pequeo distinto de cero es +/-0.00000000000000000000
00000001 (+/-1E-28).

Descripcin:
El tipo de datos Decimal proporciona el nmero mximo de dgitos significativos para un nmero.
Admite hasta 29 dgitos significativos y puede representar valores que superan 7.9228 x 10^28. Es
especialmente cmodo para clculos, por ejemplo, financieros, que requieren un gran nmero de
dgitos pero no puede tolerar errores del redondeo.
El valor predeterminado de Decimal es 0.
Sugerencias de programacin
Precisin.Decimal no es un tipo de datos de punto flotante. La estructura Decimal contiene
un valor entero binario, junto con un bit de signo y un factor de ajuste de entero que
especifica qu parte del valor es una fraccin decimal. Debido a esto, los
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

nmeros Decimal tienen una representacin ms precisa en la memoria que los tipos de
punto flotante (Single y Double).
Rendimiento. El tipo de datos Decimal es el ms lento de todos los tipos numricos. Debe
considerar la importancia de la precisin frente al rendimiento antes de elegir un tipo de
datos.
Ampliacin. El tipo de datos Decimal se ampla a Single o Double. Esto significa que se
puede convertir Decimal a cualquiera de estos tipos sin encontrar un
errorSystem.OverflowException.
Ceros finales. Visual Basic no almacena los ceros finales en un literal Decimal. Sin
embargo, una variable Decimal conserva cualquier cero final adquirido de forma
computacional. Esto se ilustra en el siguiente ejemplo:
Dim d1, d2, d3, d4 As Decimal
d1 = 2.375D
d2 = 1.625D
d3 = d1 + d2
d4 = 4.000D
MsgBox("d1 = " & CStr(d1) & ", d2 = " & CStr(d2) _
& ", d3 = " & CStr(d3) & ", d4 = " & CStr(d4))
El resultado de MsgBox en el ejemplo anterior es el siguiente:
d1 = 2.375, d2 = 1.625, d3 = 4.000, d4 = 4
Caracteres de tipo. Al agregar el carcter de tipo de literal D a un literal, el tipo de datos se
convierte en un tipo de datos Decimal. Si se agrega el carcter de tipo de identificador @a
cualquier identificador, se convierte su tipo de datos al tipo Decimal.
Tipo de Framework. El tipo correspondiente en .NET Framework es la
estructura System.Decimal.
Intervalo
Podra necesitar utilizar el carcter de tipo D para asignar un valor grande a una variable o
constante Decimal. Esto se ilustra en el siguiente ejemplo:
Dim bigDec1 As Decimal = 9223372036854775807 ' No overflow.
Dim bigDec2 As Decimal = 9223372036854775808 ' Overflow.
Dim bigDec3 As Decimal = 9223372036854775808D ' No overflow.
El compilador interpreta un literal como Long a menos que le siga un carcter de tipo de literal. La
declaracin para bigDec1 no genera un desbordamiento porque su valor est dentro del intervalo
para Long. Sin embargo, el valor para bigDec2 es demasiado grande para Long, por lo que el
compilador genera un error. El carcter de tipo de literal D resuelve el problema
para bigDec3 obligando al compilador a que interprete el literal como Decimal.

Declare (Instruccin)
Declara una referencia a un procedimiento implementado en un archivo externo.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Overloads ] _
Declare [ charsetmodifier ] [ Sub ] name Lib "libname" _
[ Alias "aliasname" ] [ ([ parameterlist ]) ]
' -or-
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Overloads ] _
Declare [ charsetmodifier ] [ Function ] name Lib "libname" _
[ Alias "aliasname" ] [ ([ parameterlist ]) ] [ As returntype ]
Partes:
attributelist
Opcional. Vea Lista de atributos.
accessmodifier
Opcional. Puede ser una de las siguientes:
Public
Protected
Friend
Private
Protected Friend
Shadows
Opcional. Ver Shadows.
charsetmodifier
Opcional. Especifica informacin sobre el juego de caracteres y la bsqueda de archivos.
Puede ser una de las siguientes:
Ansi (predeterminado)
Unicode (Visual Basic)
Auto
Sub
Opcional, pero debe aparecer Sub o Function. Indica que el procedimiento externo no
devuelve ningn valor.
Function
Opcional, pero debe aparecer Sub o Function. Indica que el procedimiento externo
devuelve un valor.
name
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Obligatorio. Nombre de esta referencia externa. Para obtener ms informacin,
vea Nombres de elementos declarados.
Lib
Obligatorio. Introduce una clusula Lib, que especifica el archivo que contiene el
procedimiento que se declara.
libname
Obligatorio. Nombre del archivo que contiene el procedimiento declarado.
Alias
Opcional. Indica que el procedimiento que se declara no se puede identificar dentro de su
archivo mediante el nombre especificado en name. Su identificacin se especifica
enaliasname.
aliasname
Es obligatorio si se utiliza la palabra clave Alias. Cadena que identifica el procedimiento en
una de estas dos maneras:
Nombre del punto de entrada del procedimiento dentro de su archivo, entre comillas ("")
O bien,
Signo de nmero (#) seguido de un entero que especifica el nmero ordinal del punto de
entrada del procedimiento en su archivo
parameterlist
Es obligatorio si el procedimiento toma parmetros. Ver Lista de parmetros.
returntype
Es obligatorio si se especifica Function y Option Strict tiene el valor On. Tipo de datos del
valor devuelto por el procedimiento.
A veces es necesario llamar a un procedimiento definido en un archivo (como un archivo DLL o un
recurso de cdigo) fuera del proyecto. Cuando se hace esto, el compilador de Visual Basic no tiene
acceso a la informacin necesaria para llamar correctamente al procedimiento, por ejemplo dnde
est ubicado el procedimiento, cmo se identifica, la secuencia de llamada y el tipo de valor
devuelto, y el juego de caracteres de cadena que utiliza. La instruccin Declare crea una referencia a
un procedimiento externo y proporciona esta informacin necesaria.
Declare slo se puede utilizar en el nivel de mdulo. Esto significa que el contexto de declaracin de
una referencia externa debe ser una clase, estructura o mdulo, y no puede ser un archivo de
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

cdigo fuente, espacio de nombres, interfaz, procedimiento o bloque. Para obtener ms
informacin, vea Contextos de declaracin y niveles de acceso predeterminados.
Las referencias externas tienen como valor predeterminado el acceso Public (Visual Basic). Los
niveles de acceso se pueden ajustar con los modificadores de acceso.
Reglas
Atributos. Los atributos se pueden aplicar a una referencia externa. Cualquier atributo que
se aplique slo tiene efecto en su proyecto, no en el archivo externo.
Modificadores. Los procedimientos externos son implcitamente Shared (Visual Basic). No se
puede utilizar la palabra clave Shared al declarar una referencia externa y no se puede
modificar su estado compartido.
Un procedimiento externo no puede participar en operaciones de reemplazar, implementar
miembros de interfaz o controlar eventos. En consecuencia, no se pueden utilizar las palabras
clave Overrides, Overridable, NotOverridable, MustOverride, Implements o Handles en
una instruccin Declare.
Nombre del procedimiento externo. No hay que asignar a esta referencia externa
(en name) el mismo nombre que tiene el nombre del punto de entrada del procedimiento
en su archivo externo (aliasname). Se puede utilizar una clusula Alias para especificar el
nombre del punto de entrada. Esto puede ser til si el procedimiento externo tiene el mismo
nombre que un modificador reservado de Visual Basic o una variable, procedimiento o
cualquier otro elemento de programacin del mismo mbito.

Nota
En la mayora de los archivos DLL, los nombres de punto de entrada distinguen entre maysculas y
minsculas.
Nmero de procedimiento externo. Alternativamente, se puede utilizar una
clusula Alias para especificar el nmero ordinal del punto de entrada dentro de la tabla de
exportacin del archivo externo. Para ello, comience aliasname con un signo de nmero (#).
Esto puede ser til si un carcter del nombre de procedimiento externo no se permite en
Visual Basic o si el archivo externo exporta el procedimiento sin un nombre.
Reglas de tipos de datos
Tipos de datos de parmetros. Si Option Strict tiene el valor On, se debe especificar el
tipo de datos de cada parmetro en parameterlist. ste puede ser cualquier tipo de datos o
el nombre de una enumeracin, estructura, clase o interfaz. En parameterlist, se utiliza una
clusula As para especificar el tipo de datos del argumento que se va a pasar a cada
parmetro.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Nota
Si el procedimiento externo no se ha escrito para .NET Framework, debe tener cuidado de que los tipos de
datos se correspondan. Por ejemplo, si se declara una referencia externa a un procedimiento de Visual Basic
6.0 con un parmetro Integer (16 bits en Visual Basic 6.0), el argumento correspondiente debe identificarse
como Short en la instruccin Declare, puesto que es un tipo entero de 16 bits en Visual Basic. Igualmente,
en Visual Basic 6.0 Long tiene un ancho de datos diferente y Date se implementa de manera diferente.
Tipo de datos devuelto. Si el procedimiento externo es de tipo Function y Option
Strict tiene el valor On, hay que especificar el tipo de datos del valor devuelto al cdigo de
llamada. ste puede ser cualquier tipo de datos o el nombre de una enumeracin,
estructura, clase o interfaz.
Nota
El compilador de Visual Basic no comprueba si los tipos de datos son compatibles con los del procedimiento
externo. Si hay una desigualdad, Common Language Runtime genera una
excepcin MarshalDirectiveException en tiempo de ejecucin.
Tipos de datos predeterminados. Si Option Strict tiene el valor Off y no se especifica el
tipo de datos de un parmetro en parameterlist, el compilador de Visual Basic convierte el
argumento correspondiente en Object (Tipo de datos). Igualmente, si no se
especifica returntype, el compilador asume que el tipo de datos devuelto es Object.
Nota
Como se trata de un procedimiento externo que podra haberse escrito en una plataforma diferente, es
peligroso asumir cul ser el tipo de datos o permitir que tomen los valores predeterminados. Es mucho ms
seguro especificar el tipo de datos de cada parmetro y del valor devuelto, si se devuelve alguno. De este
modo mejora la legibilidad del cdigo.
Comportamiento
mbito. Una referencia externa est en mbito a lo largo de toda su clase, estructura o
mdulo.
Perodo de duracin. Una referencia externa tiene el mismo perodo de duracin que la
clase, estructura o mdulo en las que se declara.
Llamar a un procedimiento externo. Se puede llamar a un procedimiento externo de la
misma manera que se llama a un procedimiento Function o Sub si se utiliza en una
expresin cuando devuelve un valor o si se especifica en una instruccin Instruccin Call
(Visual Basic) cuando no devuelve un valor.
Pasa los argumentos al procedimiento externo exactamente como
especifica parameterlist en la instruccin Declare. No tenga en cuenta cmo se declararon
originalmente los parmetros en el archivo externo. Igualmente, si se devuelve un valor,
utilcelo exactamente como especifica returntype en la instruccin Declare.
Juegos de caracteres. En charsetmodifier se puede especificar cmo Visual Basic debe
calcular referencias a cadenas cuando se llama al procedimiento externo. El
modificador Ansiindica a Visual Basic que calcule las referencias a todas las cadenas como
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

valores ANSI y el modificador Unicode le indica que calcule las referencias a todas las
cadenas como valores Unicode. El modificador Auto indica a Visual Basic que calcule las
referencias a las cadenas segn las reglas de .NET Framework basadas en el
parmetro name de la referencia externa o en el parmetro aliasname si se ha especificado.
El valor predeterminado es Ansi.
charsetmodifier tambin especifica cmo Visual Basic debe buscar el procedimiento externo
en su archivo externo. Ansi y Unicode indican a Visual Basic que busque sin modificar el
nombre durante la bsqueda. Auto indica a Visual Basic que debe determinar el juego de
caracteres base de la plataforma en tiempo de ejecucin y, posiblemente, modificar el
nombre del procedimiento externo, de la manera siguiente:
En una plataforma ANSI, como Windows 95, Windows 98 o Windows Millennium
Edition, busque primero el procedimiento externo sin modificar el nombre. Si no se
encuentra, anexe "A" al final del nombre del procedimiento externo y bsquelo de
nuevo.
En una plataforma Unicode, como Windows NT, Windows 2000 o Windows XP,
busque primero el procedimiento externo sin modificar el nombre. Si no se encuentra,
anexe "W" al final del nombre del procedimiento externo y bsquelo de nuevo.
Mecanismo. Visual Basic utiliza el mecanismo de invocacin de plataforma (PInvoke) de
.NET Framework para resolver los procedimientos externos y tener acceso a ellos. La
instruccinDeclare y la clase DllImportAttribute utilizan automticamente este mecanismo y
no es necesario tener conocimientos de PInvoke. Para obtener ms informacin,
vea Tutorial: Llamar a las API de Windows.
Ejemplo
En el ejemplo siguiente se declara una referencia externa a un procedimiento Function que
devuelve el nombre de usuario actual. A continuacin se llama al procedimiento
externoGetUserNameA como parte del procedimiento getUser.
Declare Function getUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, ByRef nSize As Integer) As Integer
Sub getUser()
Dim buffer As String = New String(CChar(" "), 25)
Dim retVal As Integer = getUserName(buffer, 25)
Dim userName As String = Strings.Left(buffer, InStr(buffer, Chr(0)) - 1)
MsgBox(userName)
End Sub
El atributo DllImportAttribute proporciona otro modo de utilizar funciones en cdigo no
administrado. En el ejemplo siguiente se declara una funcin importada sin utilizar una
instruccinDeclare.
' Add an Imports statement at the top of the class, structure, or
' module that uses the DllImport attribute.
Imports System.Runtime.InteropServices

<DllImportAttribute("kernel32.dll", EntryPoint:="MoveFileW", _
SetLastError:=True, CharSet:=CharSet.Unicode, _
ExactSpelling:=True, _
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function moveFile(ByVal src As String, _
ByVal dst As String) As Boolean
' This function copies a file from the path src to the path dst.
' Leave this function empty. The DLLImport attribute forces calls
' to moveFile to be forwarded to MoveFileW in KERNEL32.DLL.
End Function

Default
Identifica una propiedad como la propiedad predeterminada de su clase, estructura o interfaz.
Descripcin:
Una clase, estructura o interfaz puede designar slo una de sus propiedades como propiedad
predeterminada, siempre que esa propiedad acepte al menos un parmetro. Si el cdigo hace
referencia a una clase o estructura sin especificar un miembro, Visual Basic resuelve esta
referencia como propiedad predeterminada.
Las propiedades predeterminadas pueden producir una pequea reduccin en los caracteres del
cdigo fuente pero pueden dificultar la lectura del cdigo. Si el cdigo de llamada no est
familiarizado con su clase o estructura, cuando hace referencia al nombre de stas, no puede estar
seguro de si esta referencia tiene acceso a la clase o estructura en s, o a una propiedad
predeterminada. Esto puede conducir a errores del compilador o a ligeros errores lgicos en tiempo
de ejecucin.
Puede reducir levemente las posibilidades de errores de propiedades predeterminadas utilizando
siempre Option Strict (Instruccin) para establecer la comprobacin de tipos del compilador en On.
Si est pensando en utilizar una clase o estructura en el cdigo, debe determinar si tiene una
propiedad predeterminada, y si es as, cmo se llama.
Debido a estas desventajas, debera considerar no definir propiedades predeterminadas. Para una
mejor lectura del cdigo, debera considerar asimismo hacer siempre una referencia explcita a
todas las propiedades, incluso a las propiedades predeterminadas.
El modificador Default se puede utilizar en este contexto:
Property (Instruccin)

Delegate (Instruccin)
Se utiliza para declarar un delegado. Un delegado es un tipo de referencia que se establece para
un mtodo Shared de un tipo o para un mtodo de instancia de un objeto. Se puede utilizar
cualquier procedimiento con tipos de parmetros de coincidencia y tipos devueltos para crear una
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

instancia de esta clase delegada. Se puede llamar al procedimiento por medio de la instancia de
delegado.
[ <attrlist> ] [ accessmodifier ] _
[ Shadows ] Delegate [ Sub | Function ] name [( Of typeparamlist )] [([ paramete
rlist ])] [ As type ]
Partes:
attrlist
Opcional. Lista de atributos que se aplican a este delegado. Los atributos mltiples se
separan por comas. Debe incluir la lista Lista de atributos entre corchetes angulares ("<" y
">").
accessmodifier
Opcional. Especifica qu cdigo puede tener acceso al delegado. Puede ser una de las
siguientes:
Public Cualquier cdigo que puede tener acceso al elemento que declara el
delegado.
Protected Slo el cdigo de la clase del delegado o de una clase derivada.
Friend Slo el cdigo incluido en el mismo ensamblado.
Private Slo el cdigo incluido en el elemento que declara el delegado.
Puede especificar Protected Friend para permitir el acceso desde el cdigo incluido en la
clase del delegado, en una clase derivada o en el mismo ensamblado.
Shadows
Opcional. Indica que este delegado vuelve a declarar y ocultar un elemento de
programacin con el mismo nombre, o un conjunto de elementos sobrecargados, en una
clase base. Puede hacer que cualquier tipo de elemento declarado prevalezca sobre
cualquier otro tipo.
Un elemento sombreado no est disponible desde la clase derivada que lo sombrea, a
menos que el elemento que produce el sombreado no est accesible. Por ejemplo, si un
elemento Private sombrea un elemento de clase base, el cdigo que no tiene el permiso
para obtener acceso al elemento Private obtiene acceso al elemento de clase base.
Sub
Opcional, pero debe aparecer Sub o Function. Declara este procedimiento como un
procedimiento Sub delegado que no devuelve ningn valor.
Function
Opcional, pero debe aparecer Sub o Function. Declara este procedimiento como un
procedimiento Function delegado que devuelve un valor.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

name
Obligatorio. Nombre del tipo delegado. Sigue las convenciones de nomenclatura estndar
de las variables.
typeparamlist
Opcional. Lista de parmetros de tipo de este delegado. Los parmetros de tipo estn
separados por comas. Debe incluir la lista Lista de tipos entre parntesis y anteponer la
palabra clave Of.
parameterlist
Opcional. Lista de parmetros que se transfieren al procedimiento cuando se llama. Debe
incluir la lista Lista de parmetros entre parntesis.
type
Obligatorio si se especifica un procedimiento Function. Tipo de datos del valor devuelto.
Descripcin
La instruccin Delegate define los tipos de parmetros y el tipo de valor devuelto de una clase de
delegado. Se puede utilizar cualquier procedimiento con tipos de parmetros de coincidencia y tipo
de valor devuelto para crear una instancia de esta clase delegada. Se puede llamar al
procedimiento mediante la instancia de delegado, llamando al mtodo Invoke del delegado.
Los delegados se pueden declarar en el nivel de espacio de nombres, mdulo, clase o estructura,
pero no en un procedimiento.
Cada clase delegada define un constructor al cual se pasa la especificacin de un mtodo de
objeto. Un argumento para un constructor delegado debe ser una expresin con el siguiente
formato:
AddressOf [expression.]methodname
El tipo de tiempo de compilacin de expression debe ser el nombre de una clase o interfaz que
contenga un mtodo del nombre especificado cuya firma coincida con la firma de la clase
delegada. methodname puede ser un mtodo compartido o un mtodo de instancia. Aunque se
cree un delegado para el mtodo predeterminado de la clase, methodname no es opcional.
Ejemplo:
En el ejemplo siguiente se utiliza la instruccin Delegate para declarar un delegado que opere con
dos nmeros y devuelva un nmero. El mtodo DelegateTest toma una instancia de un delegado
de este tipo y la utiliza para ordenar los nmeros en pares.
Delegate Function MathOperator( _
ByVal x As Double, _
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

ByVal y As Double _
) As Double

Function AddNumbers( _
ByVal x As Double, _
ByVal y As Double _
) As Double
Return x + y
End Function

Function SubtractNumbers( _
ByVal x As Double, _
ByVal y As Double _
) As Double
Return x - y
End Function

Sub DelegateTest( _
ByVal x As Double, _
ByVal op As MathOperator, _
ByVal y As Double _
)
Dim ret As Double
ret = op.Invoke(x, y) ' Call the method.
MsgBox(ret)
End Sub

Protected Sub Test()
DelegateTest(5, AddressOf AddNumbers, 3)
DelegateTest(9, AddressOf SubtractNumbers, 3)
End Sub

Instruccin Dim (Visual Basic)
Declara y asigna espacio para almacenar una o ms variables.
[ <attributelist> ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]] [ R
eadOnly ]
Dim [ WithEvents ] variablelist
Partes:

attributelist
Opcional. Ver Lista de atributos.
accessmodifier
Opcional. Puede ser una de las siguientes:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Public
Protected
Friend
Private
Protected Friend
Ver Niveles de acceso en Visual Basic.
Shared
Opcional. Ver Shared.
Shadows
Opcional. Ver Shadows.
Static
Opcional. Ver Static.
ReadOnly
Opcional. Ver ReadOnly.
WithEvents
Opcional. Especifica que stas son variables de objeto que hacen referencia a instancias
de una clase que puede provocar eventos. Ver WithEvents.
variablelist
Obligatorio. Lista de variables que se declara en esta instruccin.
variable [ , variable ... ]
Cada variable tiene la sintaxis y las partes siguientes:
variablename[ ( [ boundslist ] ) ] [ As [ New ] datatype ]
[ = initializer ]
Parte Descripcin
variablename Obligatorio. Nombre de la variable. Ver Nombres de elementos declarados.
boundslist Opcional. Lista de lmites de cada dimensin de una variable de matriz.
New Opcional. Crea una nueva instancia de la clase cuando se ejecuta la
instruccin Dim.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

datatype Obligatorio si Option Strict es On. Tipo de datos de la variable.
initializer Opcional si no se especifica New. Expresin que se evala y se asigna a la variable
cuando se crea.

Descripcin
Se deben declarar todas las variables que se utilizan en un programa para indicar al compilador de
Visual Basic el tipo de datos de la variable y otra informacin, por ejemplo qu cdigo puede tener
acceso a la misma. En el ejemplo siguiente se declara una variable que contiene un valor Integer.
Dim numberOfStudents As Integer
Slo se puede utilizar Dim en el nivel de mdulo o procedimiento. Esto significa que el contexto de
declaracin de una variable tiene que ser una clase, estructura, mdulo, procedimiento o bloque, y
no puede ser un archivo de cdigo fuente, espacio de nombres o interfaz. Para obtener ms
informacin, vea Contextos de declaracin y niveles de acceso predeterminados.
Si Option Explicit es On (el valor predeterminado), el compilador requiere una declaracin para
cada variable que se utiliza. Si se activa Option Explicit Off, las variables no declaradas tienen de
forma predeterminada el tipo de datos Object (Tipo de datos), que podra no ser lo que se desea.
Puede especificar el tipo de datos de cada variable en la instruccin Dim. Tambin puede
especificar un valor inicial. Si no lo hace, Visual Basic utiliza la configuracin predeterminada. Para
obtener ms informacin, vea "Reglas de tipos de datos" y "Valores predeterminados" en la
seccin "Informacin detallada" de esta pgina de Ayuda. En el ejemplo siguiente se declara e
inicializa una variable String.
Dim summary As String = "Summary of results"
Puede especificar qu cdigo puede tener acceso a una variable proporcionando
accessmodifier en la instruccin Dim. Para obtener ms informacin, vea "Modificadores" y "Nivel
de acceso" en la seccin "Informacin detallada" de esta pgina de Ayuda.
Puede declarar una variable para contener una matriz, que puede almacenar varios valores. Para
obtener ms informacin, vea "Reglas de matrices" en la seccin "Informacin detallada" de esta
pgina de Ayuda. Para obtener ms informacin sobre matrices, vea Matrices en Visual Basic. En
el ejemplo siguiente se declara una variable de matriz Integer.
Dim days() As Integer
En general, debera colocar todas las instrucciones Dim al principio de la regin del cdigo donde
utiliza las variables. Para obtener ms informacin, vea "Solucin de problemas" en la seccin
"Informacin detallada" de esta pgina de Ayuda.
Informacin detallada
En esta seccin se tratan detalladamente las reas siguientes:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Declaracin
Tipos de datos
Matrices
Comportamiento
Solucin de problemas
Reglas de declaracin
Contexto de declaracin. Una variable declarada en el nivel de mdulo, fuera de cualquier
procedimiento, es una variable miembro o un campo; es miembro de la clase, estructura,
mdulo o interfaz que la declara.
Una variable declarada en el nivel de procedimiento es una variable local; es local al
procedimiento o bloque que la declara.
Atributos. Slo se pueden aplicar atributos a las variables miembro, no a las variables
locales. Un atributo proporciona informacin a los metadatos del ensamblado, que no son
significativos para el almacenamiento temporal como las variables locales.
Uso implcito de Dim. Si se especifica uno de los
modificadores Public, Protected, Friend, Protected
Friend, Private, Shared, Shadows, Static, ReadOnly o WithEvents, se puede omitir
opcionalmente la palabra clave Dim.
Public maximumAllowed As Double
Protected Friend currentUserName As String
Private salary As Decimal
Static runningTotal As Integer
En el nivel de mdulo, no se puede utilizar el modificador Static para declarar variables
miembro. En el nivel de procedimiento, no se puede
utilizar Shared, Shadows, ReadOnly,WithEvents ni un modificador de acceso para
declarar variables locales.
Variables WithEvents. Slo se puede especificar WithEvents en variables miembro, no en
variables locales dentro de un procedimiento.
Si especifica WithEvents, el tipo de datos de las variables debe ser un tipo de clase
concreto que no sea Object. No se puede declarar una matriz con WithEvents.
Para obtener ms informacin sobre eventos, vea Eventos y controladores de eventos.
Varias variables. Se pueden declarar varias variables en la misma instruccin de
declaracin si se especifica la parte variablename para cada uno y se sigue cada nombre de
matriz con parntesis. Las variables mltiples se separan con comas.
Dim lastTime, nextTime, allTimes() As Date
Reglas de tipos de datos
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Tipos de datos. La instruccin Dim puede declarar el tipo de datos de una variable. Se
puede especificar cualquier tipo de datos o el nombre de una enumeracin, estructura, clase
o interfaz.
Dim finished As Boolean
Dim monitorBox As System.Windows.Forms.Form
Tipo predeterminado. Si no se especifica datatype, la variable toma el tipo de datos
de initializer. Si datatype o initializer no estn presentes, el tipo de datos utiliza Object (Tipo
de datos) de manera predeterminada. Si se especifica datatype e initializer, el tipo de datos
de initializer debe ser convertible a datatype.
Tipos diferentes. Se pueden especificar tipos de datos diferentes para variables diferentes
utilizando una clusula As independiente para cada variable declarada. Opcionalmente, es
posible declarar varias variables que sean del mismo tipo utilizando una clusula As comn.
Todas las variables toman el tipo de datos especificado en la primera clusula As que se
encuentre despus de su parte variablename correspondiente.
Dim a, b, c As Single, x, y As Double, i As Integer
' a, b, and c are all Single; x and y are both Double
Inicializacin. La instruccin Dim puede inicializar el contenido de las variables
seleccionadas en variablelist. En un tipo de valor, initializer se utiliza para proporcionar una
expresin que se va a asignar a la variable. La expresin se debe evaluar como una
constante que se puede calcular en tiempo de compilacin.
Dim quantity As Integer = 10
Dim message As String = "Just started"
En un tipo de referencia, la palabra clave New se utiliza para crear una nueva instancia de la
clase o estructura especificada por datatype. Si utiliza New, no utilice una
expresininitializer. En su lugar, si necesario, proporcione argumentos al constructor de la
clase a partir de la que est creando la variable.
Dim bottomLabel As New System.Windows.Forms.Label
Si declara ms de una variable con la misma clusula As, no puede proporcionar
un initializer para ese grupo de variables
Reglas de matrices
Variables de matriz. Para especificar que una variable en variablelist es una matriz, siga
inmediatamente su variablename con parntesis. Si la matriz tiene ms de una dimensin,
debe incluir comas entre los parntesis para indicar el nmero de dimensiones.
Dim oneDimension(), twoDimensions(,), threeDimensions(,,) As Byte
Una matriz puede tener de 1 a 32 dimensiones.
Lmites de matrices. Se puede especificar el lmite inferior y superior de cada dimensin.
Para ello, incluya boundslist dentro de los parntesis. En cada
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

dimensin, boundslistespecifica el lmite superior y, opcionalmente, el lmite inferior. El lmite
inferior siempre es cero, tanto si se especifica como si no. Cada ndice puede variar de cero
hasta el valor de su lmite superior.
Las dos instrucciones siguientes son equivalentes. Cada instruccin declara una matriz de
21 elementos Integer. Cuando se tiene acceso a la matriz, el ndice puede variar de 0 a 20.
Dim totals(20) As Integer
Dim totals(0 To 20) As Integer
La instruccin siguiente declara una matriz bidimensional de tipo Double. La matriz tiene 4
filas (3 + 1) de 6 columnas (5 + 1) cada una.
Dim matrix2(3, 5) As Double
Observe que el lmite superior representa el valor ms alto posible del ndice, no la longitud
de la dimensin, que es el lmite superior ms uno.
Lmites de matrices en blanco. Todos los lmites de una declaracin de matriz se pueden
dejar en blanco. Si se hace esto, la matriz tiene el nmero de dimensiones especificado pero
no se inicializa, de modo que tiene un valor de Nothing hasta que se inicialicen al menos
algunos de sus elementos. La instruccin Dim debe especificar los lmites para todas las
dimensiones o para ninguna de ellas.
Dim messages() As String
Matrices vacas. Es posible utilizar 1 para declarar el lmite superior de una dimensin de
matriz. Esto significa que la matriz est vaca, pero no es Nothing, una distincin que
requieren algunas funciones del Common Language Runtime. No obstante, el cdigo de
Visual Basic no permite un acceso correcto a dicha matriz. Si se intenta el acceso, se
produce un error IndexOutOfRangeException durante la ejecucin. Para obtener ms
informacin, vea Cmo: Crear una matriz sin elementos.
Inicializacin de matrices. Los valores de una matriz se pueden inicializar rodeando los
valores de inicializacin con llaves ({}).
Dim longArray() As Long = {0, 1, 2, 3}
En las matrices multidimensionales, la inicializacin de cada dimensin independiente se
escribe entre llaves dentro de la dimensin exterior. Los elementos se especifican en orden
de importancia de filas.
Dim twoDimensions(,) As Integer = {{0, 1, 2}, {10, 11, 12}}
Comportamiento
Valores predeterminados. Si no se especifica initializer en una variable, Visual Basic la
inicializa con el valor predeterminado del tipo de datos. En la tabla siguiente se muestran los
valores de inicializacin predeterminados.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Tipo de datos Valor predeterminado
Todos los tipos numricos (incluso Byte y SByte) 0
Char Binario 0
Todas las referencias de tipo
(incluidas Object, String y todas las matrices).
Nothing
Boolean False
Date 12:00 a.m. del 1 de enero del ao 1
(01/01/0001 12:00:00 a.m.)
Cada elemento de una estructura se inicializa como si fuera una variable independiente. Si
se declara la longitud de una matriz pero no se inicializan sus elementos, stos se inicializan
como si fueran una variable independiente.
Nivel de acceso. Las variables locales (dentro de un procedimiento) tienen un valor
predeterminado de acceso pblico y no se puede utilizar ningn modificador de acceso en
ellas.
Las variables miembro de clase y mdulo (fuera de cualquier procedimiento) tienen como
valor predeterminado el acceso privado y las variables miembro de estructura tienen como
valor predeterminado el acceso pblico. Sus niveles de acceso se pueden ajustar con los
modificadores de acceso.
mbito. Las variables locales slo estn en mbito dentro de su procedimiento o bloque.
Las variables miembro estn en mbito a lo largo de su clase, estructura o mdulo.
Calificacin. El cdigo externo a una clase, estructura o mdulo debe calificar el nombre de
una variable miembro con el nombre de esa clase, estructura o mdulo. El cdigo externo a
un procedimiento o bloque no puede hacer referencia a ninguna variable local dentro de ese
procedimiento o bloque.
Perodo de duracin. Una variable local Static tiene un perodo de duracin ms largo que
el del procedimiento en el que se declara. Los lmites de la duracin de la variable dependen
de dnde se declare el procedimiento y si est o no Shared.
Declaracin de
procedimiento
La variable se inicializa La variable deja de existir
En un mdulo La primera vez que se llama al
procedimiento
Cuando el programa finaliza
la ejecucin
En una clase o
estructura,Shared
La primera vez que se llama al
procedimiento en una instancia
especfica o en la propia clase o
estructura
Cuando el programa finaliza
la ejecucin
En una clase o
estructura, noShared
La primera vez que se llama al
procedimiento en una instancia
especfica
Cuando la instancia se libera
para la recoleccin de
elementos no utilizados
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Solucin de problemas
Orden de ejecucin. La instruccin Dim no es propiamente una instruccin ejecutable. Sin
embargo, si inicializa una o ms variables, las inicializaciones se tratan como instrucciones
de asignacin. Esto significa que el valor de una variable atraviesa los pasos siguientes:
1. En la primera entrada en el elemento de cdigo que declara la variable, Visual Basic
la inicializa con el valor predeterminado para su tipo de datos.
2. Cuando la ejecucin llega a la instruccin Dim de la variable, Visual Basic la
inicializa con el valor proporcionado en la instruccin Dim.
3. Cada vez que la ejecucin vuelve a la instruccin Dim de la variable, Visual Basic la
establece una vez ms en el valor proporcionado en la instruccin Dim.
Esto tiene las implicaciones siguientes cuando se utiliza una instruccin Dim para inicializar
una variable:
Si se utiliza la variable antes de ejecutar la instruccin Dim, su valor es el
predeterminado para el tipo de datos, no el valor proporcionado en la instruccin Dim.
Si la ejecucin nunca llega a la instruccin Dim, la variable nunca se inicializa con el
valor proporcionado en la instruccin Dim.
Si se cambia el valor pero despus se vuelve a la instruccin Dim, el valor modificado
se reemplaza por el proporcionado en la instruccin Dim.
Si todas las instrucciones Dim se colocan al principio de la regin de cdigo en la que
aparecen, por ejemplo un mdulo o procedimiento, el cdigo las inicializa tal como se
deseaba.
Ejemplos:
En el ejemplo siguiente se declaran variables utilizando la instruccin Dim con distintas opciones.
' The following statement declares and initializes a Long variable.
Dim startingAmount As Long = 500

' The following statement declares a variable that refers to a Button
' object, creates a new Button object, and assigns it to the variable.
Dim switchButton As New System.Windows.Forms.Button

' The following statement declares a variable that can only be
' accessed by code in the same class, structure, or module.
Private homeTelephone As String = ""

' The following statement declares a local variable that always retains
' its value, even after its procedure returns to the calling code.
Static totalSales As Double

' The following statement declares a variable that refers to an array.
Dim highTemperature(31) As Integer

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

' The following statement declares and initializes an array variable
' that holds 4 Boolean check values.
Dim checkValues() As Boolean = {False, False, True, False}
.................................................................................................

DirectCast
Introduce una operacin de conversin de tipos basada en la herencia o la implementacin.
Descripcin
DirectCast no utiliza rutinas auxiliares para conversin de Visual Basic en tiempo de ejecucin, por
lo que puede proporcionar un mejor rendimiento que CType para convertir al tipos de
datos Object y desde l.
Se utiliza la palabra clave DirectCast de la misma manera que se utiliza la palabra clave CType
(Funcin) y TryCast. Se proporciona una expresin como primer argumento y un tipo para convertir
como segundo argumento. DirectCast requiere una relacin de herencia o de implementacin
entre los tipos de datos de los dos argumentos. Esto significa que un tipo debe heredar de otro o
implementar otro.
Errores y problemas
DirectCast genera un error del compilador si detecta que no existe ninguna relacin herencia o de
implementacin. No obstante, la falta de errores del compilador no garantiza una conversin
correcta. Si se restringe la conversin deseada, se podra producir un error en tiempo de ejecucin.
Si es as, el tiempo de ejecucin produce un error InvalidCastException.
Palabras clave para conversiones
A continuacin se muestra una comparacin de las palabras clave de conversin de tipos.
Palabra
clave
Tipos de
datos
Relacin de argumento Error en tiempo de ejecucin
CType
(Funcin)
Cualquier tipo
de datos
La conversin de ampliacin o de
restriccin se debe definir entre los
dos tipos de datos
Produce InvalidCastException
DirectCast Cualquier tipo
de datos
Un tipo debe heredar de otro tipo o
implementarlo
Produce InvalidCastException
TryCast Slo tipos de
referencia
Un tipo debe heredar de otro tipo o
implementarlo
Devuelve Nothing (Visual
Basic)
Ejemplo
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El ejemplo siguiente muestra dos usos de DirectCast, uno con un resultado satisfactorio en tiempo
de ejecucin y otro que no lo tiene.
Dim q As Object = 2.37
Dim i As Integer = CType(q, Integer)
' The following conversion fails at run time
Dim j As Integer = DirectCast(q, Integer)
Dim f As New System.Windows.Forms.Form
Dim c As System.Windows.Forms.Control
' The following conversion succeeds.
c = DirectCast(f, System.Windows.Forms.Control)

En el ejemplo anterior, el tipo en tiempo de ejecucin de q es Double. CType tiene un resultado
satisfactorio porque Double se puede convertir en Integer. No obstante, el primerDirectCast no
tiene un resultado satisfactorio porque el tipo en tiempo de ejecucin de Double no tiene relacin
de herencia con Integer, aunque existe una conversin. El segundoDirectCast tiene un resultado
satisfactorio porque convierte del tipo Form al tipo Control del que Form hereda.

Instruccin Do...Loop (Visual Basic)
Repite un bloque de instrucciones mientras una condicin Boolean sea True o hasta que la
condicin se convierta en True.
Do { While | Until } condition
[ statements ]
[ Exit Do ]
[ statements ]
Loop
-or-
Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition

Partes
While
Obligatorio si se utiliza Until. Repite el bucle hasta que condition sea False.
Until
Obligatorio a menos que se utilice While. Repite el bucle hasta que condition sea True.
condition
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Expresin Boolean. Si condition es Nothing, Visual Basic la trata como False.
statements
Opcional. Una o ms instrucciones que se repiten mientras o hasta que condition sea True.
Exit Do
Opcional. Transfiere el control fuera del bucle Do.
Loop
Obligatorio. Termina la definicin del bucle Do.
Descripcin
Utilice una estructura Do...Loop cuando desee repetir un conjunto de instrucciones un nmero
indefinido de veces, hasta que se satisfaga una condicin. Si desea repetir las instrucciones un
nmero fijo de veces, la Instruccin For...Next es normalmente una opcin mejor.
La estructura Do...Loop proporciona mayor flexibilidad que laInstruccin While...End While (Visual
Basic) porque permite elegir si se debe finalizar el bucle cuando condition deja de ser Trueo
cuando es True por primera vez. Tambin le permite probar condition al principio o al final del
bucle.
Reglas
Naturaleza de la condicin. Generalmente, la condicin es el resultado de comparar dos
valores, pero tambin puede ser cualquier expresin que da como resultado un valor
deBoolean (Tipo de datos, Visual Basic) (True o False). Esto incluye los valores de otros
tipos de datos, como los numricos, que han sido convertidos a valores de tipo Boolean.
Probar la condicin. Slo puede probar condition una vez, al principio o al final del bucle.
Puede usar While o Until para especificar condition, pero no ambas.
Nmero de iteraciones. Si prueba condition al principio del bucle (en la instruccin Do),
puede que el bucle no se ejecute ni siquiera una vez. Si prueba al final del bucle (en la
instruccin Loop), el bucle siempre se ejecuta al menos una vez.
Anidar bucles. Los bucles Do se pueden anidar colocando un bucle dentro de otro.
Tambin puede anidar distintos tipos de estructuras de control dentro de otras. Para obtener
ms informacin, vea Estructuras de control anidadas.
Transferir el control fuera del bucle. La Instruccin Exit (Visual Basic) transfiere el control
inmediatamente a la instruccin que sigue a la instruccin Loop. Puede desear salir de un
bucle si detecta una condicin que hace que sea innecesario o no se pueda continuar la
iteracin, como puede ser un valor errneo o una solicitud de finalizacin. Puede colocar
cualquier cantidad de instrucciones Exit Do en cualquier punto del bucle Do. Exit Do suele
utilizarse despus de evaluar alguna condicin, por ejemplo en una
estructuraIf...Then...Else.
Bucles sin fin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Un uso de Exit Do consiste en comprobar una condicin que podra ocasionar un bucle sin fin; es
decir, un bucle que pudiera ejecutarse un nmero extremadamente elevado, o incluso infinito, de
veces. Si detecta este tipo de situacin, puede utilizar Exit Do para interrumpir el bucle. De lo
contrario, el bucle sigue ejecutndose.
En el siguiente ejemplo se asigna a number un valor que podra hacer que el bucle se ejecutara
ms de 2 ^ 31 veces. La instruccin If comprueba si se produce esta situacin y, si es as, sale de
ella, impidiendo la entrada en un bucle sin fin.
Sub exitDoExample()
Dim counter As Integer = 0
Dim number As Integer = 8
Do Until number = 10
If number <= 0 Then Exit Do
number -= 1
counter += 1
Loop
MsgBox("The loop ran " & counter & " times.")
End Sub

Nota
Para detener un bucle sin fin, presione ESC o CTRL+INTER.

Ejemplo
El ejemplo siguiente ilustra las estructuras Do...Loop anidadas, as como el uso de While y Until, y
la comprobacin al principio (instruccin Do) y al final (instruccin Loop) del bucle.
Dim check As Boolean = True
Dim counter As Integer = 0
Do
Do While counter < 20
counter += 1
If counter = 10 Then
check = False
Exit Do
End If
Loop
Loop Until check = False
End Sub

En el ejemplo anterior, la estructura Do...Loop interior se ejecuta 10 veces, establece el valor del
indicador en False y sale de forma prematura utilizando la instruccin Exit Do. El bucle externo
sale inmediatamente al comprobar el valor del indicador.

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Double (Tipo de datos, Visual Basic)
Contiene nmeros IEEE de punto flotante de doble precisin de 64 bits (8 bytes) con valores de
1,79769313486231570E+308 a 4,94065645841246544E-324 para nmeros negativos y de
4,94065645841246544E-324 a 1,79769313486231570E+308 para nmeros positivos. Los
nmeros de doble precisin almacenan aproximaciones de nmeros reales.
Descripcin
El tipo de datos Double proporciona las magnitudes ms grandes y ms pequeas posibles para
un nmero.
El valor predeterminado de Double es 0.
Sugerencias de programacin
Precisin. Cuando trabaje con nmeros de punto flotante, tenga presente que no siempre
tienen una representacin precisa en memoria. Esto podra provocar unos resultados
inesperados en ciertas operaciones, como comparacin de valor y el operador Mod. Para
obtener ms informacin, vea Solucionar problemas de tipos de datos.
Ceros finales. Los tipos de datos de punto flotante no tienen ninguna representacin interna
de caracteres 0 finales. Por ejemplo, no distinguen entre 4,2000 y 4,2. Por consiguiente, los
caracteres 0 finales no aparecen al mostrar o imprimir valores de punto flotante.
Caracteres de tipo. Al agregar el carcter de tipo de literal R a un literal, el tipo de datos se
convierte en un tipo de datos Double. Si se agrega el carcter de tipo de identificador # a
cualquier identificador, se convierte su tipo de datos al tipo Double.
Tipo de Framework. El tipo correspondiente en .NET Framework es la
estructura System.Double.
...........
Each
Especifica la variable de bucle que se va a utilizar en un bucle For Each.
Descripcin
La palabra clave Each se utiliza en este contexto:
For Each...Next (Instruccin)

Else (Visual Basic)
Presenta un grupo de instrucciones que se ejecutarn o compilarn si no se ha ejecutado ningn
otro grupo condicional de instrucciones.
Descripcin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

La palabra clave Else se puede utilizar en estos contextos:
If...Then...Else (Instruccin)
Select...Case (Instruccin)
#If...Then...#Else (Directiva)
ElseIf (Visual Basic)
Incluye una condicin que se prueba si la prueba condicional anterior ha fallado.
Descripcin
La palabra clave ElseIf se puede utilizar en estos contextos:
If...Then...Else (Instruccin)
#If...Then...#Else (Directiva)

End (Instruccin)
Finaliza la ejecucin inmediatamente.
Descripcin
Puede colocar la instruccin End en cualquier lugar de un procedimiento para forzar que se
detenga la ejecucin de toda la aplicacin. End cierra los archivos abiertos mediante una
instruccin Open y borra todas las variables de la aplicacin. La aplicacin se cierra en cuanto no
detecte otros programas que mantengan referencias a sus objetos y no haya cdigo en ejecucin.
Nota
La instruccin End detiene repentinamente la ejecucin de cdigo, sin invocar el mtodo Dispose o Finalize,
o ningn otro cdigo de Visual Basic. Se invalidan las referencias de objetos mantenidas por otros
programas. Si una instruccin End se encuentra dentro de un bloque Try o Catch, el control no pasa al
bloque Finally correspondiente.
La instruccin Stop suspende la ejecucin, pero a diferencia de End no cierra ningn archivo ni
borra variables, a menos que se encuentre en un archivo ejecutable compilado (.exe).
Dado que End finaliza su aplicacin sin tener en cuenta los recursos que podran estar abiertos,
debera intentar cerrar limpiamente antes de utilizarlo. Por ejemplo, si su aplicacin tiene
formularios abiertos, debera cerrarlos antes de que el control llegue a la instruccin End.
Debera utilizar End moderadamente, y slo cuando sea necesario detener la ejecucin
inmediatamente. Las formas normales de terminar un procedimiento (Instruccin Return (Visual
Basic) yInstruccin Exit (Visual Basic)) no slo cierran el procedimiento limpiamente, sino que
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

tambin dan al cdigo que lo llam la oportunidad de cerrarse limpiamente. Por ejemplo, una
aplicacin de consola puede sencillamente volver (Return) del procedimiento Main.
Nota de seguridad
La instruccin End llama al mtodo Exit de la clase Environment en el espacio de
nombres System. Exit requiere que tenga permiso UnmanagedCode. De lo contrario, se genera un
errorSecurityException.
Cuando va seguido por una palabra clave adicional, End (Visual Basic) indica el final de la
definicin del procedimiento o bloque correspondientes. Por ejemplo, End Function finaliza la
definicin de un procedimiento Function.
Ejemplo
El ejemplo siguiente utiliza la instruccin End para terminar la ejecucin del cdigo si el usuario lo
solicita.
Sub Form_Load()
Dim answer As MsgBoxResult
answer = MsgBox("Do you want to quit now?", MsgBoxStyle.YesNo)
If answer = MsgBoxResult.Yes Then
MsgBox("Terminating program")
End
End If
End Sub

Instruccin Enum (Visual Basic)
Declara una enumeracin y define los valores de sus miembros.
[ <attribute list> ] [ access modifier ] [ Shadows ]
Enum enumeration name [ As data type ]
member list
End Enum

Partes
attribute list
Opcional. Lista de atributos que se aplican a esta enumeracin. Debe incluir la Lista de
atributos entre corchetes angulares ("<" y ">").
access modifier
Opcional. Especifica qu cdigo puede tener acceso a esta enumeracin. Puede ser una
de las siguientes:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Public
Protected
Friend
Private
Puede especificar ProtectedFriend para permitir el acceso desde el cdigo dentro de la
clase de la enumeracin o desde el mismo ensamblado.

Shadows
Opcional. Especifica que esta enumeracin vuelve a declarar y ocultar un elemento de
programacin denominado de forma idntica, o un conjunto de elementos sobrecargados,
en una clase base. Slo puede especificar Shadows en la propia enumeracin y no en
ninguno de sus miembros.
enumeration name
Requerido. Nombre de la enumeracin. Para obtener ms informacin sobre qu nombres
son vlidos, vea Nombres de elementos declarados.
data type
Requerido si OptionStrict es On. Tipos de datos de la enumeracin y de todos sus
miembros.
member list
Requerido. Lista de constantes de miembros que se declara en esta instruccin. Varios
miembros aparecen en lneas de cdigo fuente individuales.
Cada member tiene la sintaxis y las partes siguientes: [<attribute list>] member
name [ = initializer ]
Parte Description
member
name
Requerido. Nombre de este miembro.
initializer Opcional. Expresin que se evala en tiempo de compilacin y se asigna a este
miembro.

EndEnum
Termina el bloque Enum.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
Si tiene un conjunto de valores inalterables que se relacionan lgicamente entre s, puede definirlos
juntos en una enumeracin. Esto proporciona nombres descriptivos para la enumeracin y sus
miembros que son ms fciles de recordar que sus valores. Puede utilizar los miembros de la
enumeracin en muchos lugares de su cdigo. Mejora asimismo la legibilidad de su cdigo porque
todos los valores relacionados utilizan el mismo nombre de enumeracin.
Slo se puede utilizar Enum en el nivel de espacio de nombres o de mdulo. Esto significa que
el contexto de la declaracin de una enumeracin debe ser un archivo de cdigo fuente, espacio
de nombres, clase, estructura, mdulo o interfaz, y no un procedimiento. Para obtener ms
informacin, vea Contextos de declaracin y niveles de acceso predeterminados.
La instruccin Enum puede declarar el tipo de datos de una enumeracin. Cada miembro toma el
tipo de datos de la enumeracin. Puede
especificar Byte, Integer, Long, SByte, Short,UInteger, ULong o UShort.
Si no especifica un initializer para un miembro, Visual Basic lo inicializa a cero (si es el
primer member de una member list) o a un valor superior en uno al del member inmediatamente
anterior.
Las enumeraciones de clases, estructuras, mdulos y miembros de interfaz tienen como valor
predeterminado el acceso pblico. Puede ajustar sus niveles de acceso con los modificadores de
acceso. Las enumeraciones de miembros de espacio de nombres tienen como valor
predeterminado el acceso de amigo. Puede ajustar sus niveles de acceso a pblico, pero no a
privado o protegido. Para obtener ms informacin, vea las reglas incluidas en Niveles de acceso
en Visual Basic.
Contexto de la declaracin. Una enumeracin declarada en el nivel de mdulo, fuera de
cualquier procedimiento, es una enumeracin de miembros; se trata de un miembro de la
clase, estructura, mdulo o interfaz que la declara.
Una enumeracin declarada en el nivel de espacio de nombres, fuera de cualquier clase,
estructura, mdulo o interfaz, es un miembro slo del espacio de nombres en el que
aparece.
Atributos. Puede aplicar los atributos a una enumeracin en conjunto, pero no a sus
miembros individualmente. Un atributo proporciona informacin a los metadatos del
ensamblado.
Modificadores. De forma predeterminada, todas las enumeraciones son tipos y sus
campos, constantes. Por consiguiente no se pueden utilizar las palabras
clave Shared, Static yReadOnly al declarar una enumeracin o sus miembros.
Reglas de tipos de datos
Tipo predeterminado. Si no especifica data type para la enumeracin, cada miembro toma
el tipo de datos de initializer. Si se especifica data type e initializer, el tipo de datos
deinitializer debe ser convertible a data type. Si ni data type ni initializer estn presentes, el
tipo de datos utiliza Integer de manera predeterminada.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Inicializacin. La instruccin Enum puede inicializar el contenido de los miembros
seleccionados en member list. Utilice initializer para proporcionar una expresin que se va a
asignar al miembro.
La expresin proporcionada en initializer puede ser cualquier combinacin de literal, otras
constantes ya definidas, y miembros de la enumeracin ya definidos, incluso un miembro
anterior de esta enumeracin. Puede utilizar operadores aritmticos y lgicos para combinar
estos elementos.
No puede utilizar variables ni funciones en initializer. No obstante, pueden utilizarse palabras
clave de conversin como CByte y CShort. Tambin puede utilizar AscW si lo llama con un
argumento constante String o Char, puesto que puede evaluarse en tiempo de compilacin.
Comportamiento
Nivel de acceso. Todos los miembros de la enumeracin tienen acceso pblico y no
pueden utilizar ningn modificador de acceso. Sin embargo, si la propia enumeracin tiene
un nivel de acceso ms restringido, tiene prioridad el nivel de acceso a la enumeracin
especificado.
mbito. Se puede tener acceso a las enumeraciones de miembros desde cualquier lugar
dentro de su clase, estructura, mdulo o interfaz. Las enumeraciones de miembros de
espacio de nombres son accesibles desde cualquier cdigo dentro de ese espacio de
nombres.
Calificacin. El cdigo fuera de una clase, estructura o mdulo debe calificar el nombre de
una enumeracin de miembros con el nombre de esa clase, estructura o mdulo.
Valores no vlidos.Si el valor de un miembro rebasa el intervalo permitido para el tipo de
datos subyacente o si se inicializa un miembro al valor mximo permitido por dicho tipo, el
compilador notifica un error.
Las variables de enumeracin son variables declaradas para ser del tipo Enum. Declarar una
variable de este modo le ayudar a controlar los valores que le asigne. Sin embargo, todava
puede asignar un valor que no sea un miembro de la enumeracin, siempre que su tipo de datos
pueda convertirse en el tipo de datos de la enumeracin. Esto es til cuando la enumeracin es un
campo de indicador y se asigna una combinacin de indicadores a la variable de enumeracin. El
ejemplo siguiente muestra una asignacin de varios indicadores a una variable de enumeracin.
Enum filePermissions
create = 1
read = 2
write = 4
delete = 8
End Enum

Dim file1Perm As filePermissions
file1Perm = filePermissions.create Or filePermissions.read

Deben calificarse todas las referencias a un miembro de enumeracin, ya sea con el nombre de
una variable de enumeracin o con el nombre de la propia enumeracin. Por ejemplo, en el
ejemplo anterior, puede hacer referencia al primer miembro como filePermissions.create, pero no
como create.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Ejemplo
El ejemplo siguiente utiliza la instruccin Enum para definir un conjunto relacionado de valores
constantes con nombre. En este caso, los valores son colores que se pueden elegir a fin de
disear formularios de entrada de datos para una base de datos.
Public Enum InterfaceColors
MistyRose = &HE1E4FF&
SlateGray = &H908070&
DodgerBlue = &HFF901E&
DeepSkyBlue = &HFFBF00&
SpringGreen = &H7FFF00&
ForestGreen = &H228B22&
Goldenrod = &H20A5DA&
Firebrick = &H2222B2&
End Enum

El ejemplo siguiente muestra valores que incluyen nmeros positivos y negativos.
Enum SecurityLevel
IllegalEntry = -1
MinimumSecurity = 0
MaximumSecurity = 1
End Enum

Instruccin Erase (Visual Basic)
Se utiliza para liberar variables de matriz y desasignar la memoria utilizada para sus elementos.
Erase arraylist

Partes

arraylist
Obligatorio. Lista de variables de matriz que se van a borrar. Las variables mltiples se
separan con comas.
Descripcin
La instruccin Erase slo puede aparecer en el nivel de procedimiento. Esto significa que se
pueden liberar matrices dentro de un procedimiento, pero no en el nivel de clase o mdulo.
La instruccin Erase es equivalente a asignar Nothing a cada variable de matriz.
Ejemplo
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

En el ejemplo siguiente se utiliza la instruccin Erase para borrar dos matrices y liberar su memoria
(1000 y 100 elementos de almacenamiento, respectivamente). La instruccin ReDimdespus
asigna una instancia de matriz nueva a la matriz de tres dimensiones.
Dim threeDimArray(9, 9, 9), twoDimArray(9, 9) As Integer
Erase threeDimArray, twoDimArray
ReDim threeDimArray(4, 4, 9)

Error (Instruccin)
Simula un error generado.
Error errornumber

Partes
errornumber
Obligatorio. Puede ser cualquier nmero de error vlido.
Descripcin
La instruccin Error se incluye a efectos de compatibilidad con versiones anteriores. En el nuevo
cdigo, especialmente al crear objetos, utilice el mtodo Raise del objeto Err para generar errores
en tiempo de ejecucin.
Si errornumber est definido, la instruccin Error realiza una llamada al controlador del error
despus de haber asignado a las propiedades del objeto Err los siguientes valores
predeterminados:
Propiedad Valor
Number Valor especificado como argumento de la instruccin Error. Puede ser cualquier
nmero de error vlido.
Source Nombre del proyecto de Visual Basic actual.
Description Expresin de tipo String (cadena) correspondiente al valor devuelto por la
funcin Error para el argumento Number especificado, si existe esa cadena. Si la
cadena no existe,Description contiene una cadena de longitud cero ("").
HelpFile El nombre completo con unidad, ruta de acceso y nombre de archivo del archivo
de Ayuda de Visual Basic.
HelpContext El id. de contexto apropiado del archivo de Ayuda de Visual Basic para el error
correspondiente a la propiedad Number.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

LastDLLError Cero.
Si no existe un controlador de errores, o si no hay ninguno habilitado, se crea y se muestra un
mensaje de error a partir de las propiedades del objeto Err.
Nota
Algunas aplicaciones host de Visual Basic no pueden crear objetos. Consulte la documentacin de la
aplicacin host para determinar si puede crear clases y objetos.

Ejemplo
En este ejemplo se utiliza la instruccin Error para generar el error nmero 11.
On Error Resume Next ' Defer error handling.
Error 11 ' Simulate the "Division by zero" error.



Event (Instruccin)
Declara un evento definido por el usuario.
[ <attrlist> ] [ accessmodifier ] _
[ Shared ] [ Shadows ] Event eventname[(parameterlist)] _
[ Implements implementslist ]
' -or-
[ <attrlist> ] [ accessmodifier ] _
[ Shared ] [ Shadows ] Event eventname As delegatename _
[ Implements implementslist ]
' -or-
[ <attrlist> ] [ accessmodifier ] _
[ Shared ] [ Shadows ] Custom Event eventname As delegatename _
[ Implements implementslist ]
[ <attrlist> ] AddHandler(ByVal value As delegatename)
[ statements ]
End AddHandler
[ <attrlist> ] RemoveHandler(ByVal value As delegatename)
[ statements ]
End RemoveHandler
[ <attrlist> ] RaiseEvent(delegatesignature)
[ statements ]
End RaiseEvent
End Event

Partes
Parte Descripcin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

attrlist Opcional. Lista de atributos que se aplican a este evento. Los atributos
mltiples se separan por comas. Debe incluir la lista Lista de atributos entre
corchetes angulares ("<" y ">").
accessmodifier Opcional. Especifica qu cdigo puede tener acceso al evento. Puede ser una
de las siguientes:
Public cualquier cdigo que puede tener acceso al elemento que lo
declara puede tener acceso a l.
Protected slo el cdigo que est dentro de su clase o de una clase
derivada puede tener acceso a l.
Friend slo el cdigo que est dentro del mismo ensamblado puede
tener acceso a l.
Private slo el cdigo que est dentro del elemento que lo declara
puede tener acceso a l.
Puede especificar Protected Friend para permitir el acceso desde el cdigo
incluido en la clase del evento, en una clase derivada o en el mismo
ensamblado.
Shared Opcional. Especifica que este evento no est asociado a una instancia
especfica de una clase o una estructura.
Shadows Opcional. Indica que este evento vuelve a declarar y ocultar un elemento de
programacin con el mismo nombre, o un conjunto de elementos
sobrecargados, en una clase base. Puede hacer que cualquier tipo de
elemento declarado prevalezca sobre cualquier otro tipo.
Un elemento sombreado no est disponible desde la clase derivada que lo
sombrea, a menos que el elemento que produce el sombreado no est
accesible. Por ejemplo, si un elemento Private sombrea un elemento de clase
base, el cdigo que no tiene el permiso para obtener acceso al
elemento Private obtiene acceso al elemento de clase base.
eventname Obligatorio. Nombre del evento. Sigue las convenciones de nomenclatura
estndar de las variables.
parameterlist Opcional. Lista de variables locales que representan los parmetros de este
evento. Debe incluir la lista Lista de parmetros entre parntesis.
Implements Opcional. Indica que este evento implementa un evento de una interfaz.
implementslist Requerido si se suministra Implements. Lista de procedimientos Sub que se
estn implementando. Los diversos procedimientos se separan con comas:
implementedprocedure [ , implementedprocedure ... ]
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Cada implementedprocedure tiene la sintaxis y las partes siguientes:
interface.definedname
Parte Descripcin
interface Obligatorio. Nombre de una interfaz que est implementando
la clase contenedora o la estructura de este procedimiento.
definedname Obligatorio. Nombre por el que est definido el procedimiento
en interface. No es necesario que su valor sea igual al
de name, el nombre que est utilizando este procedimiento
para implementar el procedimiento definido.
Custom Obligatorio. Los eventos declarados como Custom deben definir descriptores
de acceso AddHandler, RemoveHandler y RaiseEvent personalizados.
delegatename Opcional. El nombre de un delegado que especifica la firma del controlador de
eventos.
AddHandler Obligatorio. Declara un descriptor de acceso AddHandler, que especifica las
instrucciones que se deben ejecutar cuando se agrega un controlador de
eventos, bien explcitamente usando la instruccin AddHandler o
implcitamente utilizando la clusula Handles.
End AddHandler Obligatorio. Termina el bloque AddHandler.
value Obligatorio. Nombre de parmetro.
RemoveHandler Obligatorio. Declara un descriptor de acceso RemoveHandler, que especifica
las instrucciones que se deben ejecutar cuando se quita un controlador de
eventos utilizando la instruccin RemoveHandler.
End
RemoveHandler
Obligatorio. Termina el bloque RemoveHandler.
RaiseEvent Obligatorio. Declara un descriptor de acceso RaiseEvent, que especifica las
instrucciones que se deben ejecutar cuando se produce el evento utilizando la
instruccinRaiseEvent. Normalmente, invoca una lista de delegados
mantenida por los descriptores de acceso AddHandler y RemoveHandler.
End RaiseEvent Obligatorio. Termina el bloque RaiseEvent.
delegatesignature Obligatorio. Lista de parmetros que hace coincidir los parmetros requeridos
por el delegado delegatename. Debe incluir la lista Lista de parmetros entre
parntesis.
statements Opcional. Instrucciones que contienen los cuerpos de los
mtodos AddHandler, RemoveHandler y RaiseEvent.
End Event Obligatorio. Termina el bloque Event.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Descripcin
Una vez declarado el evento, utilice la instruccin RaiseEvent para provocar el evento. Un evento
tpico podra declararse y activarse como se muestra en los siguientes fragmentos de cdigo:
Public Class EventSource
' Declare an event.
Public Event LogonCompleted(ByVal UserName As String)
Sub CauseEvent()
' Raise an event on successful logon.
RaiseEvent LogonCompleted("AustinSteele")
End Sub
End Class

Nota
Los argumentos de eventos se pueden declarar como los argumentos de procedimientos, con las siguientes
excepciones: los eventos no pueden tener argumentos con nombre, argumentos ParamArray ni
argumentos Optional. Los eventos no tienen valores devueltos.
Para controlar un evento, debe asociarlo a una subrutina del controlador de eventos utilizando la
instruccin Handles o AddHandler. Las firmas de la subrutina y del evento deben coincidir. Para
controlar un evento compartido, debe utilizar la instruccin AddHandler.
Slo puede utilizar Event en el nivel de mdulo. Esto significa que el contexto de declaracin de un
evento debe ser una clase, estructura, mdulo o interfaz, y no un archivo de cdigo fuente, un
espacio de nombres o un bloque. Para obtener ms informacin, vea Contextos de declaracin y
niveles de acceso predeterminados.
En la mayora de las circunstancias, puede utilizar la primera sintaxis de la seccin Sintaxis de este
tema para declarar los eventos. Sin embargo, algunos escenarios requieren que tenga mayor
control sobre el comportamiento detallado del evento. La ltima sintaxis de la seccin Sintaxis de
este tema, que utiliza la palabra clave Custom, proporciona ese control permitindole definir
eventos personalizados. En un evento personalizado, debe especificar exactamente lo que ocurre
cuando el cdigo agrega o quita un controlador de eventos a o del evento, o cuando el cdigo
produce el evento. Para obtener ejemplos, vea Cmo: Declarar eventos que evitan que se pierda
memoria y Cmo: Declarar eventos que evitan bloqueos.
Ejemplo
El ejemplo siguiente utiliza eventos para hacer una cuenta atrs de 10 a 0 segundos. El cdigo
ilustra varios de los mtodos, propiedades e instrucciones relacionados con eventos, incluida la
instruccin RaiseEvent.
La clase que produce un evento es el origen de evento, y los mtodos que procesan el evento son
los controladores de eventos. Un origen de evento puede tener mltiples controladores para los
eventos que genera. Cuando una clase produce el evento, ese evento se genera en cada clase
que ha elegido para controlar eventos para esa instancia del objeto.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El ejemplo tambin utiliza un formulario (Form1) con un botn (Button1) y un cuadro de texto
(TextBox1). Al hacer clic en el botn, el primer cuadro de texto muestra una cuenta atrs de 10 a 0
segundos. Cuando ha transcurrido todo el tiempo (10 segundos), el primer cuadro de texto muestra
la palabra "Done" (terminado).
El cdigo para Form1 especifica los estados inicial y terminal del formulario. Tambin contiene el
cdigo que se ejecuta cuando se producen eventos.
Para utilizar este ejemplo, abra un nuevo proyecto de formularios Windows Forms. A continuacin,
agregue al formulario principal, llamado Form1, un botn denominado Button1 y un cuadro de texto
con el nombre TextBox1. A continuacin, haga clic con el botn secundario del mouse en el
formulario y haga clic en Ver cdigo para abrir el editor de cdigo.
Agregue una variable WithEvents a la seccin de declaraciones de la clase Form1:
Private WithEvents mText As TimerState

Agregue el cdigo siguiente al cdigo de Form1. Sustituya los procedimientos que estn
duplicados, como Form_Load o Button_Click.
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Button1.Text = "Start"
mText = New TimerState
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.Click
mText.StartCountdown(10.0, 0.1)
End Sub

Private Sub mText_ChangeText() Handles mText.Finished
TextBox1.Text = "Done"
End Sub

Private Sub mText_UpdateTime(ByVal Countdown As Double) _
Handles mText.UpdateTime
TextBox1.Text = Format(Countdown, "##0.0")
' Use DoEvents to allow the display to refresh.
My.Application.DoEvents()
End Sub

Class TimerState
Public Event UpdateTime(ByVal Countdown As Double)
Public Event Finished()
Public Sub StartCountdown(ByVal Duration As Double, _
ByVal Increment As Double)
Dim Start As Double = DateAndTime.Timer
Dim ElapsedTime As Double = 0
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Dim SoFar As Double = 0
Do While ElapsedTime < Duration
If ElapsedTime > SoFar + Increment Then
SoFar += Increment
RaiseEvent UpdateTime(Duration - SoFar)
End If
ElapsedTime = DateAndTime.Timer - Start
Loop
RaiseEvent Finished()
End Sub
End Class

Presione F5 para ejecutar el ejemplo anterior y haga clic en el botn etiquetado
como Start (Iniciar). El primer cuadro de texto empieza la cuenta atrs de los segundos. Cuando
ha transcurrido todo el tiempo (10 segundos), el primer cuadro de texto muestra la palabra "Done"
(terminado).
Nota
El mtodo My.Application.DoEvents no procesa los eventos exactamente de la misma manera que como lo
hace el formulario. Para permitir al formulario controlar directamente los eventos, puede utilizar el
subprocesamiento mltiple. Para obtener ms informacin, vea Subprocesamiento mltiple en Visual Basic.



Instruccin Exit (Visual Basic)
Sale de un procedimiento o bloque y transfiere el control inmediatamente a la instruccin que sigue
a la llamada al procedimiento o a la definicin del bloque.
Exit { Do | For | Function | Property | Select | Sub | Try | While }

Partes

Do
Sale inmediatamente del bucle Do en el que aparece. La ejecucin contina con la
instruccin que sigue a la instruccin Loop. Exit Do slo se puede utilizar dentro de un
bucle Do. Cuando se utiliza dentro de bucles Do anidados, Exit Do sale del bucle ms
profundo y transfiere el control al siguiente nivel de anidamiento.
For
Sale inmediatamente del bucle For en el que aparece. La ejecucin contina con la
instruccin que sigue a la instruccin Next. Exit For slo se puede utilizar dentro de un
bucleFor...Next o For Each...Next. Cuando se utiliza dentro de bucles For anidados, Exit
For sale del bucle ms profundo y transfiere el control al siguiente nivel de anidamiento.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Function
Sale inmediatamente del procedimiento Function en el que aparece. La ejecucin contina
con la instruccin que sigue la instruccin que llam al procedimiento Function. Exit
Function slo se puede utilizar dentro de un procedimiento Function.
Property
Sale inmediatamente del procedimiento Property en el que aparece. La ejecucin contina
con la instruccin que llam al procedimiento Property, es decir, con la instruccin que
solicita o establece el valor de la propiedad. Exit Property slo se puede utilizar dentro de
un procedimiento Get o Set de una propiedad.
Select
Sale inmediatamente del bloque Select Case en el que aparece. La ejecucin contina con
la instruccin que sigue a la instruccin End Select. Exit Select slo se puede utilizar
dentro de una instruccin Select Case.
Sub
Sale inmediatamente del procedimiento Sub en el que aparece. La ejecucin contina con
la instruccin que sigue la instruccin que llam al procedimiento Sub. Exit Sub slo se
puede utilizar dentro de un procedimiento Sub.
Try
Sale inmediatamente del bloque Try o Catch en el que aparece. La ejecucin contina con
el bloque Finally si lo hay o, de lo contrario, con la instruccin siguiente a la
instruccin End Try. Exit Try slo se puede utilizar dentro de un bloque Try o Catch, y no
dentro de un bloque Finally.
While
Sale inmediatamente del bucle While en el que aparece. La ejecucin contina con la
instruccin que sigue a la instruccin End While. Exit While slo se puede utilizar dentro
de un bucle While. Cuando se utiliza dentro de bucles anidados While, Exit
While transfiere el control al bucle que est anidado un nivel por encima del bucle donde
aparece Exit While.
Descripcin
No confunda las instrucciones Exit con las instrucciones End. Exit no define el fin de una
instruccin.
Ejemplo
En el ejemplo siguiente se utiliza la instruccin Exit para salir de un bucle For...Next,de un
bucle Do y de un procedimiento Sub.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Sub exitStatementDemo()
Dim demoNum As Single
' Set up an infinite loop.
Do
For i As Integer = 1 To 10000000
demoNum = Int(Rnd() * 100)
Select Case demoNum
Case 7 : Exit For
Case 29 : Exit Do
Case 54 : Exit Sub
End Select
Next i
Loop
End Sub


False (Visual Basic)
Representa un valor de tipo Boolean que falla una comprobacin condicional.
Descripcin
Los valores Boolean (Tipo de datos, Visual Basic) no se almacenan como nmeros y los valores
almacenados no se consideran equivalentes a nmeros. No debe escribir cdigo que se base en
los valores numricos equivalentes de True y False. Siempre que sea posible, debe restringir el
uso de variables Boolean a los valores lgicos para los que se han diseado. Si fuera necesario
mezclar valores de tipo Boolean y numricos, asegrese de entender el mtodo de conversin
elegido.

For (Visual Basic)
Introduce un bucle recorrido en iteracin con diferentes valores de una variable de bucle.
Descripcin
La palabra clave For se utiliza en estos contextos:
For...Next (Instruccin)
For Each...Next (Instruccin)

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Friend (Visual Basic)
Especifica que slo se puede tener acceso a uno o varios elementos de programacin declarados
desde el ensamblado que contiene su declaracin.
Descripcin
Reglas
Contexto de declaracin. Slo puede utilizar Friend en el nivel de mdulo, interfaz o
espacio de nombres. Esto significa que el contexto de declaracin de un
elemento Friend debe ser un archivo de cdigo fuente, un espacio de nombres, una
interfaz, un mdulo, una clase o una estructura, y no un procedimiento.
Modificadores combinados. Puede utilizar el modificador Friend junto con el
modificador Protected (Visual Basic) en la misma declaracin. Esta combinacin proporciona
acceso de tipo amigo y acceso protegido a los elementos declarados para que sean
accesibles desde cualquier punto del mismo ensamblado, desde su propia clase y desde
cualquier clase derivada. Slo puede especificar Protected Friend en miembros de clases.
Comportamiento
Nivel de acceso. Todo el cdigo de un contexto de declaracin puede tener acceso a sus
elementos. El cdigo de otras clases, estructuras y mdulos que se compilan en el mismo
ensamblado puede tener acceso a todos los elementos Friend de dicho ensamblado.
El acceso de tipo amigo no es un supraconjunto ni un subconjunto del acceso protegido.
Modificadores de acceso. Las palabras clave que especifican el nivel de acceso se
denominan access modifiers..
Cundo se utiliza Friend
En numerosas ocasiones desear que elementos de programacin como clases y estructuras se
utilicen en todo el ensamblado y no slo en el componente en que se declaran. Sin embargo,
posiblemente no desee que cdigo ajeno al ensamblado tenga acceso a estos elementos, por
ejemplo si se trata de una aplicacin propia. Si desea limitar el acceso a un elemento de este
modo, puede declararlo con Friend.
El acceso de tipo amigo suele ser el nivel preferido de los elementos de programacin de una
aplicacin. Tenga en cuenta que el nivel de acceso de una interfaz, mdulo, clase o estructura
es Friend de manera predeterminada, si no se declara lo contrario.
El modificador Friend se puede utilizar en estos contextos:
Class (Instruccin)
Const (Instruccin)
Declare (Instruccin)
Delegate (Instruccin)
Dim (Instruccin)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Enum (Instruccin)
Event (Instruccin)
Function (Instruccin)
Interface (Instruccin)
Module (Instruccin)
Property (Instruccin)
Structure (Instruccin)
Sub (Instruccin)

Class (Visual Basic)
Obliga a un parmetro de tipo genrico a exigir que cualquier argumento de tipo que le pasen sea
un tipo de referencia o introduce una Instruccin Class (Visual Basic).
Descripcin
Cuando declara un parmetro de tipo para un tipo genrico, puede imponer una restriccin, una
serie de uno o varios requisitos que limitan el argumento de tipo que se puede pasar a este
parmetro de tipo. Para obtener ms informacin, vea "Restricciones" en Tipos genricos en Visual
Basic.
Entre los posibles requisitos de una restriccin se incluye el hecho de que el argumento de tipo
debe ser un tipo de referencia, por ejemplo, una String, matriz o delegado, o un objeto creado a
partir de una clase. Esto se especifica incluyendo la palabra clave Class en la restriccin.
Otro posible requisito es que el argumento de tipo debe ser un tipo de valor, por ejemplo, una
estructura, enumeracin o tipo de datos bsico. Se especifica un requisito de tipo de valor
incluyendo la palabra clave Structure (Visual Basic) en la restriccin.
No tiene que especificar Class o Structure en una restriccin. No puede especificar ambos en la
misma restriccin.
La restriccin Class no es lo mismo que Instruccin Class (Visual Basic).

Instruccin Const (Visual Basic)
Declara y define una o ms constantes.
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist

Partes
attributelist
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Lista de atributos que se aplican a todas las constantes declaradas en esta
instruccin. Vea la Lista de atributos en corchetes angulares ("<" y ">").
accessmodifier
Opcional. Utilcelo para especificar qu cdigo puede tener acceso a estas constantes.
Puede ser Public (Visual Basic), Protected (Visual Basic), Friend (Visual Basic), Protected
Friend oPrivate (Visual Basic).
Shadows
Opcional. Utilcelo para volver a declarar y ocultar un elemento de programacin de una
clase base. Vea Shadows.
constantlist
Obligatorio. Lista de constantes de miembros que se declaran en esta instruccin.
constant[ , constant ... ]
Cada constant tiene la sintaxis y las partes siguientes:
constantname[ As datatype ] = initializer
Parte Descripcin
constantname Obligatorio. Nombre de la constante. Vea Nombres de elementos declarados.
datatype Obligatorio si Option Strict es On. Tipo de datos de la constante.
initializer Obligatorio. Expresin que se evala en tiempo de compilacin y se asigna a la
constante.

Descripcin
Si en su aplicacin tiene un valor que nunca cambia, puede definir una constante con nombre y
usarla en lugar de un valor literal. Un nombre es ms fcil de recordar que un valor. Puede definir
la constante slo una vez y utilizarla en muchos lugares de su cdigo. Si en una versin posterior
necesita volver a definir el valor, la instruccin Const es el nico lugar donde es necesario realizar
el cambio.
Slo puede utilizar Const en el nivel de mdulo o de procedimiento. Esto significa que el contexto
de declaracin de una propiedad debe ser una clase, estructura, mdulo, procedimiento o bloque, y
no un archivo de cdigo fuente, un espacio de nombres o una interfaz. Para obtener ms
informacin, vea Contextos de declaracin y niveles de acceso predeterminados.
Las constantes locales (contenidas en un procedimiento) tienen un valor predeterminado de
acceso pblico y no puede utilizar ningn modificador de acceso en ellas. Las constantes de clases
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

y miembros de mdulo (externas a cualquier procedimiento) tienen como valor predeterminado el
acceso privado, y las constantes de miembro de estructura tienen como valor predeterminado el
acceso pblico. Puede ajustar sus niveles de acceso con los modificadores de acceso.

Reglas
Contexto de la declaracin. Una constante declarada en el nivel de mdulo, fuera de
cualquier procedimiento, es una constante de miembros; es un miembro de la clase,
estructura o mdulo que la declara.
Una constante declarada en el nivel de procedimiento es una constante local; es local al
procedimiento o bloque que la declara.
Atributos. Slo puede aplicar los atributos a las constantes de miembro, no a las constantes
locales. Un atributo aporta informacin a los metadatos del ensamblado, que no son
significativos para el almacenamiento temporal como constantes locales.
Modificadores. De manera predeterminada, todas las constantes
son Shared, Static y ReadOnly. No puede utilizar ninguna de estas palabras clave al
declarar una constante.
En el nivel de procedimiento, no puede utilizar Shadows ni ningn modificador de acceso
para declarar constantes locales.
Varias constantes. Puede declarar varias constantes en la misma instruccin de
declaracin, especificando la parte constantname para cada una. Las constantes mltiples
se separan por comas.
Reglas de tipos de datos
Tipos de datos. La instruccin Const puede declarar el tipo de datos de una variable.
Puede especificar cualquier tipo de datos o el nombre de una enumeracin.
Tipo predeterminado. Si no especifica datatype, la constante toma el tipo de datos
de initializer. Si especifica datatype e initializer, el tipo de datos de initializer debe ser
convertible al datatype. Si ni datatype ni initializer estn presentes, el tipo de datos
utiliza Object de manera predeterminada.
Distintos tipos. Puede especificar distintos tipos de datos para las diferentes constantes
utilizando una clusula As independiente para cada variable que declare. Sin embargo, no
puede declarar varias constantes para que sean del mismo tipo utilizando una
clusula As comn.
Inicializacin. Debe inicializar el valor de cada constante en constantlist.
Utilice initializer para proporcionar una expresin que se va a asignar a la constante. La
expresin puede ser cualquier combinacin de literales, otras constantes que ya estn
definidas y miembros de enumeracin que ya se hayan definido. Puede utilizar operadores
aritmticos y lgicos para combinar estos elementos.
No puede utilizar variables ni funciones en initializer. No obstante, pueden utilizarse palabras
clave de conversin como CByte y CShort. Tambin puede utilizar AscW si lo llama con un
argumento constante String o Char, puesto que puede evaluarse en tiempo de compilacin.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Comportamiento
mbito. A las constantes locales slo se puede tener acceso desde dentro de sus
procedimientos o bloques. Se puede tener acceso a las constantes de miembro desde
cualquier lugar del interior de sus clases, estructuras o mdulos.
Calificacin. El cdigo fuera de una clase, estructura o mdulo debe calificar el nombre de
una constante de miembro con el nombre de esa clase, estructura o mdulo. El cdigo
situado fuera de un procedimiento o bloque no puede hacer referencia a ninguna constante
local incluida dentro de ese procedimiento o bloque.
Ejemplo
En el ejemplo siguiente se utiliza la instruccin Const para declarar constantes que se utilicen en
lugar de valores literales.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5

Si define una constante con el tipo de datos Object, el compilador de Visual Basic le asigna el tipo
de initializer, en lugar de Object. En el ejemplo siguiente, la naturalLogBase constante tiene el
tipo Decimal en tiempo de ejecucin.
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " & _
naturalLogBase.GetType.ToString())

El ejemplo anterior utiliza el mtodo ToString del objeto Type devuelto por el GetType (Operador),
porque Type no se puede convertir a String utilizando CStr.

Instruccin Continue (Visual Basic)
Transfiere controle inmediatamente a la siguiente iteracin de un bucle.
Continue { Do | For | While }

Descripcin
Puede transferir desde dentro de un bucle Do, For o While a la siguiente iteracin de ese bucle. El
control pasa inmediatamente a la comprobacin de condicin del bucle, que es equivalente a
transferir a la instruccin For o While, o a la instruccin Do o Loop que contiene la
clusula Until o While.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Puede utilizar Continue en cualquier lugar del bucle que permita realizar las transferencias. Las
reglas que permiten la transferencia del control son iguales que las de la GoTo (Instruccin).
Por ejemplo, si un bucle est completamente incluido en un bloque Try, un bloque Catch o un
bloque Finally, puede usar Continue para transferir el control fuera del bucle. Por otra parte, si la
estructura Try...End Try est contenida dentro del bucle, no puede usar Continue para transferir el
control fuera del bloque Finally y utilizarlo para transferirlo fuera de un bloque Try oCatch slo si lo
transfiere completamente fuera de la estructura Try...End Try.
Si tiene bucles anidados del mismo tipo, por ejemplo un bucle Do dentro de otro bucle Do, una
instruccin Continue Do pasa a la siguiente iteracin del bucle Do ms interno que lo contiene. No
puede utilizar Continue para pasar a la iteracin siguiente de un bucle que contiene el mismo tipo.
Si tiene bucles anidados de distintos tipos, por ejemplo un bucle Do dentro de un bucle For, puede
pasar a la siguiente iteracin de cualquiera de esos bucles mediante Continue Do oContinue For.
Ejemplo
El ejemplo de cdigo siguiente utiliza la instruccin Continue While para pasar a la siguiente
columna de una matriz si un divisor es cero. Continue While est dentro de un bucle For.
Transfiere a la instruccin While col < lastcol, que es la siguiente iteracin del bucle While ms
interior que contiene el bucle For.
Dim row, col As Integer
Dim lastrow As Integer = 6
Dim lastcol As Integer = 10
Dim a(,) As Double = New Double(lastrow, lastcol) {}
Dim b(7) As Double
row = -1
While row < lastrow
row += 1
col = -1
While col < lastcol
col += 1
a(row, col) = 0
For i As Integer = 0 To b.GetUpperBound(0)
If b(i) = col Then
Continue While
Else
a(row, col) += (row + b(i)) / (col - b(i))
End If
Next i
End While
End While

Instruccin Function (Visual Basic)
Declara el nombre, los parmetros y el cdigo que definen un procedimiento Function.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

[ <attributelist> ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shado
ws ]
Function name [ (Of typeparamlist) ] [ (parameterlist) ] [ As returntype ] [ Imp
lements implementslist | Handles eventlist ]
[ statements ]
[ Exit Function ]
[ statements ]
End Function


Partes
attributelist
Opcional. Vea la Lista de atributos.
accessmodifier
Opcional. Puede ser una de las siguientes:
Public
Protected
Friend
Private
Protected Friend
Vea Niveles de acceso en Visual Basic.
proceduremodifiers
Opcional. Puede ser una de las siguientes:
Overloads
Overrides
Overridable
NotOverridable
MustOverride
MustOverride Overrides
NotOverridable Overrides
Shared
Opcional. Vea Shared.
Shadows
Opcional. Vea Shadows.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

name
Obligatorio. Nombre del procedimiento. Vea Nombres de elementos declarados.
typeparamlist
Opcional. Lista de parmetros de tipo para un procedimiento genrico. Vea la Lista de
tipos.
parameterlist
Opcional. Lista de nombres de variables locales que representan los parmetros de este
procedimiento. Vea la Lista de argumentos.
returntype
Obligatorio si Option Strict es On. Tipo de datos del valor devuelto por este
procedimiento.
Implements
Opcional. Indica que este procedimiento implementa uno o ms procedimientos Function,
cada uno de los cuales se define en una interfaz implementada por la clase contenedora o
la estructura de este procedimiento. Vea Implements (Instruccin).
implementslist
Requerido si se suministra Implements. Lista de procedimientos Function que se
implementan.
implementedprocedure [ , implementedprocedure ... ]
Cada implementedprocedure tiene la sintaxis y las partes siguientes:
interface.definedname
Parte Descripcin
interface Obligatorio. Nombre de una interfaz implementada por la clase contenedora o la
estructura de este procedimiento.
definedname Obligatorio. Nombre por el que se define el procedimiento en interface.

Handles
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Indica que este procedimiento puede controlar uno o ms eventos especficos.
Vea Handles.
eventlist
Requerido si se suministra Handles. Lista de eventos que controla este procedimiento.
eventspecifier [ , eventspecifier ... ]
Cada eventspecifier tiene la sintaxis y las partes siguientes:
eventvariable.event
Parte Descripcin
eventvariable Obligatorio. Variable de objeto declarada con el tipo de datos de la clase o
estructura que provoca el evento.
event Obligatorio. Nombre del evento que controla este procedimiento.

statements
Opcional. Bloque de instrucciones que se ejecutan dentro de este procedimiento.
EndFunction
Termina la definicin de este procedimiento.
Descripcin
El cdigo ejecutable debe estar en un procedimiento. Cada procedimiento se declara a su vez
dentro de una clase, estructura o mdulo, que se denominan clase contenedora, estructura o
mdulo.
Utilice un procedimiento Function cuando necesita devolver un valor al cdigo de llamada. Utilice
un procedimiento Sub cuando no necesita devolver un valor.
Slo puede utilizar Function en el nivel de mdulo. Esto significa que el contexto de la
declaracin para una funcin debe ser una clase, estructura, mdulo o interfaz y no puede ser un
archivo de cdigo fuente, espacio de nombres, procedimiento o bloque. Para obtener ms
informacin, vea Contextos de declaracin y niveles de acceso predeterminados.
Los procedimientos Function tienen como valor predeterminado el acceso pblico. Puede ajustar
sus niveles de acceso con los modificadores de acceso.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Se puede utilizar un procedimiento Function en el lado derecho de una expresin cuando desee
utilizar el valor devuelto por la funcin. El procedimiento Function se utiliza de la misma manera
que utiliza cualquier funcin de la biblioteca como por ejemplo Sqrt, Cos o ChrW.
Puede llamar a un procedimiento Function con el nombre del procedimiento, seguido por la lista
de argumentos entre parntesis, en una expresin. Si no se proporcionan argumentos, se pueden
omitir los parntesis. Sin embargo, el cdigo es ms legible si se incluyen siempre los parntesis.
Se puede llamar una funcin tambin mediante la instruccin Call. En cualquier caso, el valor
devuelto se pasar por alto.
Reglas
Tipo de valor devuelto. La instruccin Function puede declarar el tipo de datos del valor
que devuelve. Puede especificar cualquier tipo de datos o el nombre de una enumeracin,
estructura, clase o interfaz.
Si no especifica returntype, el procedimiento devuelve un tipo Object.
Implementacin. Si este procedimiento utiliza la palabra clave Implements, la clase
contenedora o la estructura tambin deben incluir una
instruccin Implements inmediatamente despus de la instruccin Class o Structure. La
instruccin Implements debe incluir cada interfaz especificada en implementslist. Sin
embargo, el nombre con el que una interfaz defineFunction (en definedname) no tiene que
ser el mismo que el nombre de este procedimiento (en name).
Comportamiento
Volver de un procedimiento. Cuando el procedimiento Function vuelva al cdigo de
llamada, la ejecucin contina con la instruccin que sigue a la instruccin que lo llam.
Las instrucciones Exit Function y Return provocan una salida inmediata de un
procedimiento Function. Puede aparecer cualquier nmero de instrucciones Exit
Function y Return en cualquier parte del procedimiento y puede combinar
instrucciones Exit Function y Return.
Valor devuelto. Para devolver un valor de una funcin, se puede asignar el valor al nombre
de funcin o incluirlo en una instruccin Return. El ejemplo siguiente asigna el valor
devuelto al nombre de funcin myFunction y, a continuacin, utiliza la instruccin Exit
Function para volver:
Function myFunction(ByVal j As Integer) As Double
myFunction = 3.87 * j
Exit Function
End Function

Si utiliza Exit Function sin asignar un valor a name, el procedimiento devuelve el valor
predeterminado del tipo de datos especificado en returntype. Si no se especifica returntype,
el procedimiento devuelve Nothing, el valor predeterminado de Object.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

La instruccin Return asigna el valor devuelto y sale de la funcin. Esto se muestra en el
siguiente ejemplo.
Function myFunction(ByVal j As Integer) As Double
Return 3.87 * j
End Function

Solucin de problemas
Orden de ejecucin. Visual Basic reorganiza a veces las expresiones aritmticas para
aumentar la eficacia interna. Por esta razn, evite utilizar un procedimiento Function en una
expresin aritmtica cuando la funcin cambie el valor de las variables en la misma
expresin.
Ejemplo
En el siguiente ejemplo se utiliza la instruccin Function para declarar el nombre, parmetros y
cdigo que forman el cuerpo de un procedimiento Function. El modificador ParamArraypermite a
la funcin aceptar un nmero variable de argumentos.
Public Function calcSum(ByVal ParamArray args() As Double) As Double
calcSum = 0
If args.Length <= 0 Then Exit Function
For i As Integer = 0 To UBound(args, 1)
calcSum += args(i)
Next i
End Function
En el ejemplo siguiente se invoca a la funcin declarada en el ejemplo anterior.
Dim returnedValue As Double = calcSum(4, 3, 2, 1)
' The function's local variables are assigned the following values:
' args(0) = 4, args(1) = 3, and so on.


Get (Instruccin)
Declara un procedimiento de propiedad Get que se utiliza para recuperar el valor de una
propiedad.
[ <attributelist> ] [ accessmodifier ] Get()
[ statements ]
End Get

Partes
attributelist
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Vea Lista de atributos.
accessmodifier
Opcional en, como mximo, una de las instrucciones Get y Set de esta propiedad. Puede
ser una de las siguientes:
Protected
Friend
Private
Protected Friend
Vea Niveles de acceso en Visual Basic.
statements
Opcional. Una o ms instrucciones que se ejecutan cuando se llama al procedimiento de
propiedad Get.
End Get
Obligatorio. Termina la definicin de este procedimiento de propiedad Get.
Descripcin
Cada propiedad debe tener un procedimiento de propiedad Get, a menos que la propiedad est
marcada como WriteOnly. El procedimiento Get se utiliza para devolver el valor actual de la
propiedad.
Visual Basic llama automticamente al procedimiento Get de una propiedad cuando una expresin
solicita el valor de la propiedad.
El cuerpo de la declaracin de propiedad puede contener slo los procedimientos Get y Set de la
propiedad entre la instruccin Property (Instruccin) y la instruccin End Property No puede
almacenar nada que no sean esos procedimientos. En concreto, no puede almacenar el valor
actual de la propiedad. Debe almacenar este valor fuera de la propiedad porque, si lo guarda
dentro de cualquiera de los procedimientos de propiedad, el otro procedimiento de propiedad no
puede tener acceso a ella. El enfoque usual es almacenar el valor en una variablePrivate (Visual
Basic) declarada en el mismo nivel que la propiedad. Debe definir un procedimiento Get dentro de
la propiedad a la que se aplica.
El procedimiento Get tiene como valor predeterminado el nivel de acceso de su propiedad
contenedora a menos que utilice accessmodifier en la instruccin Get.
Reglas
Niveles de acceso mixto. Si est definiendo una propiedad de lectura y escritura, tiene la
opcin de especificar un nivel de acceso distinto para el procedimiento Get o para el
procedimiento Set, pero no para ambos. Si as lo hace, el nivel de acceso del procedimiento
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

debe ser ms restrictivo que el nivel de acceso de la propiedad. Por ejemplo, si la propiedad
se declara como Friend, puede declarar el procedimiento Get como Private, pero no
como Public.
Si est definiendo una propiedad ReadOnly, el procedimiento Get representa toda la
propiedad. No puede declarar un nivel de acceso diferente para Get, porque se
estableceran dos niveles de acceso para la propiedad.
Tipo de valor devuelto. La instruccin Property (Instruccin) puede declarar el tipo de datos
del valor que devuelve. El procedimiento Get devuelve automticamente ese tipo de datos.
Puede especificar cualquier tipo de datos o el nombre de una enumeracin, estructura, clase
o interfaz.
Si la instruccin Property no especifica returntype, el procedimiento devuelve Object.
Comportamiento
Retorno de un procedimiento. Cuando el procedimiento Get vuelve al cdigo de llamada,
la ejecucin contina dentro de la instruccin que solicit el valor de la propiedad.
Los procedimientos de propiedad Get pueden devolver un valor mediante la
instruccin Instruccin Return (Visual Basic) o asignando el valor devuelto al nombre de
propiedad. Para obtener ms informacin, vea "Valor devuelto" en Instruccin Function
(Visual Basic).
Las instrucciones Exit Property y Return provocan una salida inmediata de un
procedimiento de propiedad. Puede aparecer cualquier cantidad de instrucciones Exit
Property yReturn en cualquier parte del procedimiento, y se puede combinar
instrucciones Exit Property y Return.
Valor devuelto. Para devolver un valor desde un procedimiento Get, puede asignar el valor
al nombre de propiedad o incluirlo en una instruccin Instruccin Return (Visual Basic). La
instruccin Return asigna simultneamente el valor devuelto por el procedimiento Get y sale
del procedimiento.
Si utiliza Exit Property sin asignar un valor al nombre de propiedad, el
procedimiento Get devuelve el valor predeterminado para el tipo de datos de la propiedad.
Para obtener ms informacin, vea "Valor devuelto" en Instruccin Function (Visual Basic).
El ejemplo siguiente muestra dos maneras en que la propiedad quoteForTheDay de slo
lectura puede devolver el valor contenido en la variable privada quoteValue.
Private quoteValue As String = "No quote assigned yet."

ReadOnly Property quoteForTheDay() As String
Get
quoteForTheDay = quoteValue
Exit Property
End Get
End Property

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

ReadOnly Property quoteForTheDay() As String
Get
Return quoteValue
End Get
End Property

Ejemplo
En el ejemplo siguiente se utiliza la instruccin Get para devolver el valor de una propiedad.
Class propClass
' Define a private local variable to store the property value.
Private currentTime As String
' Define the read-only property.
Public ReadOnly Property dateAndTime() As String
Get
' The Get procedure is called automatically when the
' value of the property is retrieved.
currentTime = CStr(Now)
' Return the date and time As a string.
Return currentTime
End Get
End Property
End Class

GetType (Operador)
Devuelve un objeto Type para el tipo especificado. El objeto Type proporciona informacin sobre el
tipo como sus propiedades, mtodos y eventos.
GetType(typename)

Parmetros

typename
Nombre del tipo del que se desea obtener informacin.
Descripcin
El operador GetType devuelve el objeto Type para el typename especificado. Puede pasar el
nombre de cualquier tipo definido en typename. Entre estas estructuras se incluyen las siguientes:
Cualquier tipo de datos de Visual Basic, como Boolean o Date.
Cualquier clase, estructura, mdulo o interfaz de .NET Framework,
como System.ArgumentException o System.Double.
Cualquier clase, estructura, mdulo o interfaz definidas por su aplicacin.
Cualquier matriz definida por su aplicacin.
Cualquier delegado definido por su aplicacin.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Cualquier enumeracin definida por Visual Basic, .NET Framework o su aplicacin.
Para obtener el objeto de tipo de una variable de objeto, utilice el mtodo System.Type.GetType.
El operador GetType puede ser til en las circunstancias siguientes:
Necesita tener acceso a los metadatos para un tipo en tiempo de ejecucin. El
objeto Type proporciona los metadatos como miembros de tipo e informacin de
distribucin. Por ejemplo, necesita esto para reflejarlo en un ensamblado. Para obtener ms
informacin, vea System.Reflection.
Desea comparar dos referencias a objetos para ver si hacen referencia a instancias del
mismo tipo. Si es as, GetType devuelve referencias al mismo objeto Type.
Ejemplo
En el siguiente ejemplo se muestra el operador GetType en funcionamiento.
' The following statement returns the Type object for Integer.
MsgBox(GetType(Integer).ToString())
' The following statement returns the Type object for one-dimensional string arr
ays.
MsgBox(GetType(String()).ToString())

Global
Permite tener acceso a un elemento de programacin de .NET Framework cuando se ha
bloqueado con la estructura del espacio de nombres.
Descripcin
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
nombres SpecialSpace.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
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

claveGlobal 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,
como Microsoft.VisualBasic, y a cualquier espacio de nombres asociado a su proyecto.
La palabra clave Global se puede utilizar en estos contextos:
Instruccin Class (Visual Basic)
Instruccin Const (Visual Basic)
Declare (Instruccin)
Delegate (Instruccin)
Instruccin Dim (Visual Basic)
Instruccin Enum (Visual Basic)
Event (Instruccin)
Instruccin For...Next (Visual Basic)
Instruccin For Each...Next (Visual Basic)
Instruccin Function (Visual Basic)
Instruccin Interface (Visual Basic)
Operator (Instruccin)
Property (Instruccin)
Structure (Instruccin)
Instruccin Sub (Visual Basic)
Instruccin Try...Catch...Finally (Visual Basic)
Instruccin Using (Visual Basic)
.
GoTo (Instruccin)
Realiza una bifurcacin incondicional a una lnea especificada de un procedimiento.
GoTo line

Parte

line
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Obligatorio. Cualquier etiqueta de lnea.
Descripcin
La instruccin GoTo slo puede bifurcarse a lneas dentro del procedimiento en el que aparece. La
lnea debe tener una etiqueta de la lnea a la que puede hacer referencia GoTo. Para obtener ms
informacin, vea Cmo: Aplicar etiquetas a las instrucciones.
Nota
Las instrucciones GoTo pueden dificultar la lectura y el mantenimiento del cdigo. Siempre que sea posible,
utilice en su lugar una estructura de control. Para obtener ms informacin, vea Flujo de control en Visual
Basic.
No puede utilizar una instruccin GoTo para realizar una bifurcacin desde fuera de una
construccin For...Next, For Each...Next, SyncLock...End
SyncLock, Try...Catch...Finally, With...End With o Using...End Using a una etiqueta situada
dentro de ella.
Bifurcacin y construcciones Try
Dentro de una construccin Try...Catch...Finally, se aplican las reglas siguientes a la bifurcacin
con la instruccin GoTo.
Bloque o
regin
Bifurcacin hacia dentro desde
fuera
Bifurcacin hacia fuera desde dentro
Bloque Try Slo desde un bloque Catch de
la misma construccin
1

Slo hacia fuera de la construccin completa
Bloque Catch Nunca se permite Slo hacia fuera de la construccin completa
o al bloque Try de la misma construccin
1

Bloque Finally Nunca se permite Nunca se permite
1
Si una construccin Try...Catch...Finally est anidada dentro de otra, un bloque Catch se puede
bifurcar hacia el interior del bloque Try de su propio nivel de anidacin, pero no hacia el interior de
ningn otro bloque Try. Una construccin Try...Catch...Finally anidada debe estar completamente
contenida dentro de un bloque Try o Catch de la construccin dentro de la que est anidada.
La ilustracin siguiente muestra una construccin Try anidada dentro de otra. Las distintas
bifurcaciones entre los bloques de las dos construcciones se sealan como vlidas o no vlidas.
Bifurcaciones vlidas y no vlidas en construcciones Try

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Ejemplo
En este ejemplo se utiliza la instruccin GoTo para bifurcar hacia etiquetas de lnea ubicadas
dentro de un procedimiento.
Sub gotoStatementDemo()
Dim number As Integer = 1
Dim sampleString As String
' Evaluate number and branch to appropriate label.
If number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
sampleString = "Number equals 1"
GoTo LastLine
Line2:
' The following statement never gets executed because number = 1.
sampleString = "Number equals 2"
LastLine:
' Write "Number equals 1" in the Debug window.
Debug.WriteLine(sampleString)
End Sub

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Handles
Declara que un procedimiento controla un evento especificado.
proceduredeclaration Handles eventlist

Partes

proceduredeclaration
La declaracin del procedimiento Sub del procedimiento que controlar el evento.
eventlist
La lista de los eventos para proceduredeclaration que se deben controlar. Los eventos los
debe provocar la clase base de la clase actual o un objeto declarado mediante la palabra
clave WithEvents.
Descripcin
Use la palabra clave Handles al final de una declaracin de procedimiento para hacer que controle
eventos provocados por una variable de objeto declarada con la palabra claveWithEvents. La
palabra clave Handles tambin puede utilizarse en una clase derivada para controlar eventos de
una clase base.
La firma del procedimiento debe coincidir con las firmas de cada evento contenido en eventlist.
Tanto la palabra clave Handles como la instruccin AddHandler permiten especificar que
determinados procedimientos controlan eventos concretos, pero hay diferencias. Utilice la palabra
clave Handles al definir un procedimiento para especificar que controla un determinado evento. La
instruccin AddHandler conecta en tiempo de ejecucin los procedimientos a los eventos. Para
obtener ms informacin, vea AddHandler (Instruccin).
Para los eventos personalizados, la aplicacin invoca el descriptor de acceso AddHandler del
evento cuando agrega el procedimiento como un controlador de eventos. Para obtener ms
informacin sobre eventos personalizados, vea Event (Instruccin).

Ejemplo
Public Class ContainerClass
' Module or class level declaration.
WithEvents Obj As New Class1

Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

RaiseEvent Ev_Event()
End Sub
End Class

Sub EventHandler() Handles Obj.Ev_Event
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub

' Call the TestEvents procedure from an instance of the ContainerClass
' class to test the Ev_Event event and the event handler.
Public Sub TestEvents()
Obj.CauseSomeEvent()
End Sub
End Class

En el siguiente ejemplo se muestra cmo una clase derivada puede utilizar la
instruccin Handles para controlar un evento desde una clase base.
Public Class BaseClass
' Declare an event.
Event Ev1()
End Class
Class DerivedClass
Inherits BaseClass
Sub TestEvents() Handles MyBase.Ev1
' Add code to handle this event.
End Sub
End Class

Instruccin If...Then...Else (Visual Basic)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresin.
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]

Partes
condition
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Obligatorio. Expresin. Se debe evaluar como True o False, o como un tipo de datos que
es implcitamente convertible a Boolean.
Then
Obligatorio en la forma de una lnea, opcional en la forma de varias lneas.
statements
Opcional. Se ejecutan una o ms instrucciones que siguen a If...Then que se ejecutan
si condition se evala como True.
elseifcondition
Obligatorio si ElseIf est presente. Expresin. Se debe evaluar como True o False, o
como un tipo de datos que es implcitamente convertible a Boolean.
elseifstatements
Opcional. Se ejecutan una o ms instrucciones que siguen a ElseIf...Then que se ejecutan
si elseifcondition se evala como True.
elsestatements
Opcional. Una o ms instrucciones que se ejecutan si ninguna
expresin condition o elseifcondition anterior se evala como True.
End If
Termina el bloque If...Then...Else.
Descripcin
Puede utilizar la forma de una sola lnea para pruebas cortas y sencillas. Sin embargo, el formato
de mltiples lneas proporciona ms estructura y flexibilidad que el formato de una sola lnea y,
generalmente, es ms fcil de leer, mantener y depurar.
Cuando se encuentra una estructura If...Then...Else, se comprueba la condition.
Si condition es True, se ejecutan las instrucciones que estn a continuacin de Then.
Si condition es False, se evalan por orden cada una de las instrucciones ElseIf. Cuando se
encuentra una elseifcondition que sea True, se ejecutan las instrucciones que siguen
inmediatamente a la instruccin Thenasociada. Si elseifcondition se evala como True, o si no hay
ninguna instruccin ElseIf, se ejecutan las instrucciones situadas despus de Else. Despus de la
ejecucin de las instrucciones que siguen a Then, ElseIf o Else, la ejecucin contina con la
instruccin que sigue a End If.
Sugerencia
La Instruccin Select...Case (Visual Basic) puede ser ms til al evaluar una nica expresin que tiene varios
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

valores posibles.
Con el formato de una sola lnea, es posible ejecutar varias instrucciones como resultado de una
decisin If...Then. Todas las instrucciones deben estar en la misma lnea y separarse con dos
puntos. En el siguiente ejemplo se muestra cmo.
If A > 10 Then A = A + 1 : B = B + A : C = C + B
Con la forma de varias lneas, la instruccin If debe ser la nica instruccin incluida en la primera
lnea. Las instrucciones ElseIf, Else y End If pueden ir precedidas solamente por una etiqueta de
lnea. El bloque If...Then...Else de varias lneas debe finalizar con una instruccin End If.
Para determinar si una instruccin If introduce o no un formato de varias lneas, examine lo que
sigue a la palabra clave Then. Si aparece cualquier otra cosa que no sea un comentario despus
de Then en la misma instruccin, sta se trata como una instruccin If de una sola lnea. Si no est
presente Then, debe ser el comienzo de una instruccin If...Then...Else de varias lneas.
Las clusulas ElseIf y Else son opcionales. Puede tener tantas clusulas ElseIf como desee en
una instruccin If...Then...Else de varias lneas, pero no puede aparecer ninguna de ellas despus
de una clusula Else. Los formatos de mltiples lneas pueden anidarse unos dentro de otros.
Ejemplo
En el ejemplo siguiente se muestran los formatos de varias lneas y de una sola lnea de la
instruccin If...Then...Else.
Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
digits = 1
ElseIf number < 100 Then
digits = 2
Else
digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

En el ejemplo anterior, la condicin ElseIf se evala como True y se asigna a digits un valor de 2.
A continuacin, la ltima instruccin le asigna un valor de "Ms de una" a myString.

Implements (Instruccin)
Especifica una o ms interfaces o miembros de interfaz que se deben implementar en la definicin
de clase o estructura en la que aparecen.
Implements interfacename [, ...]
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

-or-
Implements interfacename.interfacemember [, ...]

Partes
interfacename
Obligatorio. Una interfaz cuyas propiedades, procedimientos y eventos deben
implementarse por los miembros correspondientes de la clase o estructura.

Interfacemember

Obligatorio. El miembro de una interfaz que se va a implementar.

Descripcin
Una interfaz es una coleccin de prototipos que representan los miembros (propiedades,
procedimientos y eventos) que encapsula la interfaz. Las interfaces slo contienen las
declaraciones para miembros. Las clases y estructuras implementan estos miembros.
La instruccin Implements debe incluirse inmediatamente a continuacin de las
instrucciones Class o Structure.
Cuando implementa una interfaz, debe implementar todos los miembros declarados en la interfaz.
Se considera un error de sintaxis omitir cualquier miembro. Para implementar un miembro
concreto, se especifica la palabra clave Implements (Visual Basic) (que es independiente de la
instruccin Implements) al declarar el miembro en la clase o la estructura.
Las clases pueden utilizar implementaciones Private (Visual Basic) de propiedades y
procedimientos, pero estos miembros slo son accesibles convirtiendo una instancia de la clase
que se implementa en una variable declarada para ser del tipo de la interfaz.
Ejemplo
El ejemplo siguiente muestra cmo utilizar la instruccin Implements para implementar miembros
de una interfaz. Define una interfaz denominada ICustomerInfo con un evento, una propiedad y un
procedimiento. La clase customerInfo implementa todos los miembros definidos en la interfaz.
Public Interface ICustomerInfo
Event updateComplete()
Property customerName() As String
Sub updateCustomerStatus()
End Interface

Public Class customerInfo
Implements ICustomerInfo
' Storage for the property value.
Private customerNameValue As String
Public Event updateComplete() Implements ICustomerInfo.updateComplete
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Public Property CustomerName() As String Implements _
ICustomerInfo.customerName
Get
Return customerNameValue
End Get
Set(ByVal value As String)
' The value parameter is passed to the Set procedure
' when the contents of this property are modified.
customerNameValue = value
End Set
End Property

Public Sub updateCustomerStatus() Implements _
ICustomerInfo.updateCustomerStatus
' Add code here to update the status of this account.
' Raise an event to indicate that this procedure is done.
RaiseEvent updateComplete()
End Sub
End Class
Observe que la clase customerInfo utiliza la instruccin Implements de una lnea de cdigo fuente
independiente para indicar que la clase implementa todos los miembros de la
interfazICustomerInfo. A continuacin, cada miembro de la clase utiliza la palabra
clave Implements como parte de su declaracin de miembro para indicar que implementa ese
miembro de interfaz.
Los dos procedimientos siguientes muestran cmo se podra utilizar la interfaz implementada en el
ejemplo anterior. Para comprobar la implementacin, agregue estos procedimientos al proyecto e
invoque el procedimiento testImplements.
Public Sub testImplements()
' This procedure tests the interface implementation by
' creating an instance of the class that implements ICustomerInfo.
Dim cust As ICustomerInfo = New customerInfo()
' Associate an event handler with the event that is raised by
' the cust object.
AddHandler cust.updateComplete, AddressOf handleUpdateComplete
' Set the customerName Property
cust.customerName = "Fred"
' Retrieve and display the customerName property.
MsgBox("Customer name is: " & cust.customerName)
' Call the updateCustomerStatus procedure, which raises the
' updateComplete event.
cust.updateCustomerStatus()
End Sub

Sub handleUpdateComplete()
' This is the event handler for the updateComplete event.
MsgBox("Update is complete.")
End Sub
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Imports (Instruccin)
Importa espacios de nombres o elementos de programacin definidos en proyectos y ensamblados
a los que se hace referencia. Tambin importa espacios de nombres o elementos definidos dentro
del mismo proyecto.

Imports [ aliasname = ] namespace
-or-
Imports [ aliasname = ] namespace.element
Partes

aliasname
Opcional. Un alias de importacin o nombre por el que el cdigo puede hacer referencia
a namespace en lugar de a la cadena calificada completa. Ver Nombres de elementos
declarados.
namespace
Obligatorio. Nombre completo del espacio de nombres que se importa. Puede ser una
cadena de espacios de nombres anidada a cualquier nivel.
element
Opcional. El nombre de un elemento de programacin declarado en el espacio de
nombres. Puede ser cualquier elemento contenedor.
Descripcin
Cada archivo de cdigo fuente puede contener cualquier nmero de instrucciones Imports. stas
deben seguir las declaraciones de opcin existentes, como la instruccin Option Strict, y deben
preceder a cualquier declaracin de elemento de programacin como Module o Class.
Slo puede utilizar Imports en el nivel de archivo. Esto significa que el contexto de declaracin
para la importacin debe ser un archivo de cdigo fuente y no puede ser un espacio de nombres,
una clase, una estructura, un mdulo, una interfaz, un procedimiento o un bloque.
Los alias de importacin son tiles cuando es necesario utilizar elementos con el mismo nombre
declarado en uno o ms espacios de nombres. Para obtener ms informacin y un ejemplo, vea
"Clases con el mismo nombre" en Resolver una referencia cuando muchas variables tienen el
mismo nombre.
Observe que la instruccin Imports no pone a disposicin de su proyecto elementos de otros
proyectos y ensamblados. La importacin no sustituye el establecimiento de una referencia. Slo
quita la necesidad de calificar nombres que ya estn disponibles para su proyecto. Para obtener
ms informacin, vea "Importar elementos contenedores" en Resolver una referencia cuando
muchas variables tienen el mismo nombre.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Reglas
Nombre de alias. No se deben declarar miembros en el nivel de mdulo que tengan el
mismo nombre que aliasname. Si lo hace, el compilador de Visual Basic slo
utiliza aliasnamepara el miembro declarado y deja de reconocerlo como un alias de
importacin.
Nombre de espacio de nombres. Puede proporcionar un nico nombre de espacio de
nombres o una cadena de espacios de nombres anidados. Cada espacio de nombres
anidado se separa del espacio de nombres de nivel ms alto siguiente con un punto (.),
como se muestra en el ejemplo siguiente.
Imports System.Collections.Generic
Tipo de elemento. Si proporciona element, debe representar un elemento contenedor, es
decir, un elemento de programacin que puede contener otros elementos. Los elementos
contenedores incluyen clases, estructuras, mdulos, interfaces y enumeraciones.
Comportamiento
mbito. El mbito de los elementos que se vuelven disponibles mediante una
instruccin Imports depende de si especifica element. Si especifica slo namespace, todos
los miembros con nombre nico de ese espacio de nombres y miembros de elementos
contenedores dentro de dicho espacio de nombres, estn disponibles sin calificacin. Si
especificanamespace y element, slo los miembros de ese elemento estn disponibles sin
calificacin.
Calificacin. El cdigo situado fuera de un espacio de nombres o elemento contenedor
normalmente deben calificar el nombre de un miembro con el nombre de ese espacio de
nombres de elemento contenedor. La instruccin Imports hace que tal calificacin sea
innecesaria, a menos que su proyecto tenga acceso a otro miembro con el mismo nombre.
En esos casos, puede especificar un aliasname en cada instruccin Imports. As, slo es
necesario que los alias de importacin califiquen los miembros con el mismo nombre.
Ejemplo
El ejemplo siguiente importa la clase Microsoft.VisualBasic.Strings y asigna un alias, str, que se
puede utilizar para obtener acceso al mtodo Left.

' Place Imports statements at the top of your program.
Imports str = Microsoft.VisualBasic.Strings

Class testClass1
Sub showHello()
' Display only the word "Hello"
MsgBox(str.Left("Hello World", 5))
End Sub
End Class

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Observe que en el ejemplo anterior se importa un espacio de nombres anidado, Strings dentro
de VisualBasic dentro de Microsoft. Cuando MsgBox (Funcin, Visual Basic) tiene acceso al
mtodo Left, puede utilizar el alias str en lugar de la cadena de calificacin
completa, Microsoft.VisualBasic.Strings.
....
In (Visual Basic)
Especifica el grupo que recorre la variable de bucle en un bucle For Each.
Descripcin
La palabra clave In se puede utilizar en este contexto:
For Each...Next (Instruccin)

Inherits (Instruccin)
Hace que la clase o interfaz actual herede los atributos, variables, propiedades, procedimientos y
eventos de otra clase o conjunto de interfaces.
Inherits basetypenames

Partes
basetypenames
Obligatorio. Nombre de la clase de la que deriva esta clase.
O bien
Nombres de las interfaces de las que deriva esta interfaz. Utilice comas para separar
varios nombres.
Descripcin
Si se utiliza, la instruccin Inherits debe ser la primera lnea no vaca, sin comentario, en una
definicin de clase o de interfaz. Debe seguir inmediatamente a la instruccin Class o Interface.
Slo puede utilizar Inherits en una clase o una interfaz. Esto significa que el contexto de
declaracin de una herencia no puede ser un archivo de cdigo fuente, espacio de nombres,
estructura, mdulo, procedimiento o bloque.
Reglas
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Herencia de clase. Si una clase utiliza la instruccin Inherits, slo puede especificar una
clase base.
Una clase no puede heredar de una clase anidada en ella.
Herencia de interfaz. Si una interfaz utiliza la instruccin Inherits, puede especificar una o
ms interfaces base. Puede heredar de dos interfaces incluso si cada una define un
miembro con el mismo nombre. Si lo hace as, el cdigo de implementacin debe utilizar la
calificacin del nombre para especificar qu miembro se implementa.
Una interfaz no puede heredar de otra interfaz con un nivel de acceso ms restrictivo. Por
ejemplo, una interfaz de tipo Public no puede heredar una interfaz de tipo Friend.
Una interfaz no puede heredar de una interfaz anidada en ella.
Un ejemplo de herencia de clases en .NET Framework es la clase ArgumentException, que hereda
de la clase SystemException. Esto proporciona a ArgumentException todas las propiedades y
procedimientos predefinidos que necesitan las excepciones de sistema, como la
propiedad Message y el mtodo ToString.
Un ejemplo de herencia de interfaces en .NET Framework es la interfaz ICollection, que hereda de
la interfaz IEnumerable. Esto hace que ICollection herede la definicin del enumerador necesario
para recorrer una coleccin.
Ejemplo
En el ejemplo siguiente se utiliza la instruccin Inherits para mostrar cmo una clase
denominada thisClass puede heredar todos los miembros de una clase base denominada
anotherClass.
Public Class thisClass
Inherits anotherClass
' Add code to override, overload, or extend members
' inherited from the base class.
' Add new variable, property, procedure, and event declarations.
End Class

En el ejemplo siguiente se muestra la herencia de varias interfaces.
Public Interface thisInterface
Inherits IComparable, IDisposable, IFormattable
' Add new property, procedure, and event definitions.
End Interface

Ahora, la interfaz denominada thisInterface incluye todas las definiciones de las
interfaces IComparable, IDisposable y IFormattable. Los miembros heredados proporcionan,
respectivamente, la comparacin especfica de tipos de dos objetos, la liberacin de recursos
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

asignados y la expresin del valor de un objeto como un elemento de tipo String. Una clase que
implementa thisInterface debe implementar cada miembro de cada interfaz base.

Integer (Tipo de datos, Visual Basic)
Contiene enteros de 32 bits con signo (4 bytes) que se sitan en el intervalo entre -2.147.483.648 y
2.147.483.647.
Descripcin
El tipo de datos Integer proporciona rendimiento ptimo en un procesador de 32 bits. Los dems
tipos integrales son ms lentos para cargarse y almacenarse de y a la memoria.
El valor predeterminado de Integer es 0.
Sugerencias de programacin
Consideraciones sobre la interoperabilidad. Si interacta con componentes no escritos
para .NET Framework, por ejemplo, objetos de automatizacin o COM, recuerde
que Integertiene un ancho de datos diferente (16 bits) en otros entornos. Al pasar un
argumento de 16 bits a esos componentes, declrelo en el cdigo de Visual
Basic como Short en lugar deInteger.
Ampliacin. El tipo de datos Integer se ampla a Long, Decimal, Single o Double. Esto
significa que se puede convertir Integer en cualquiera de estos tipos sin encontrar un
errorSystem.OverflowException.
Caracteres de tipo Al agregar el carcter de tipo de literal I a un literal, el tipo de datos se
convierte al tipo de datos Integer. Si se agrega el carcter de tipo de identificador % a
cualquier identificador, se convierte su tipo de datos al tipo Integer.
Tipo en Framework. El tipo correspondiente en .NET Framework es la
estructura System.Int32.
Intervalo
Si intenta asignar a una variable de un tipo integral un nmero que est fuera del intervalo
correspondiente a este tipo, se produce un error. Si intenta establecerlo en una fraccin, el nmero
se redondea. Esto se muestra en el siguiente ejemplo.
' The valid range of an Integer variable is -2147483648 through +2147483647.
Dim k As Integer
' The following statement causes an error because the value is too large.
k = 2147483648
' The following statement sets k to 6.
k = CInt(5.9)

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Instruccin Interface (Visual Basic)
Declara el nombre de una interfaz e introduce las definiciones de los miembros que incluye la
interfaz.
[ <attributelist> ] [ accessmodifier ] [ Shadows ] _
Interface name [ ( Of typelist ) ]
[ Inherits interfacenames ]
[ [ modifiers ] Property membername ]
[ [ modifiers ] Function memberame ]
[ [ modifiers ] Sub memberame ]
[ [ modifiers ] Event memberame ]
[ [ modifiers ] Interface memberame ]
[ [ modifiers ] Class memberame ]
[ [ modifiers ] Structure memberame ]
End Interface

Partes
attributelist
Opcional. Ver Lista de atributos.
accessmodifier
Opcional. Puede ser una de las siguientes:
Public
Protected
Friend
Private
Protected Friend
Ver Niveles de acceso en Visual Basic.
Shadows
Opcional. Ver Shadows.
name
Obligatorio. Nombre de esta interfaz. Ver Nombres de elementos declarados.
Of
Opcional. Especifica que sta es una interfaz genrica.
typelist
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Es obligatoria si se utiliza la palabra clave Of. Lista de parmetros de tipo de esta interfaz.
Ver Lista de tipos.
Inherits
Opcional. Indica que esta interfaz hereda los atributos y miembros de otra interfaz o
interfaces. Ver Inherits (Instruccin).
interfacenames
Es obligatoria si se utiliza la instruccin Inherits. Nombres de las interfaces de las que
deriva esta interfaz.
modifiers
Opcional. Modificadores adecuados para el miembro de interfaz que se est definiendo.
Property
Opcional. Define una propiedad que es un miembro de la interfaz.
Function
Opcional. Define un procedimiento Function que es un miembro de la interfaz.
Sub
Opcional. Define un procedimiento Sub que es un miembro de la interfaz.
Event
Opcional. Define un evento que es un miembro de la interfaz.
Interface
Opcional. Define una interfaz que est anidada dentro de esta interfaz. La definicin de
interfaz anidada debe finalizar con una instruccin End Interface.
Class
Opcional. Define una clase que es un miembro de la interfaz. La definicin de clase
miembro debe finalizar con una instruccin End Class.
Structure
Opcional. Define una estructura que es un miembro de la interfaz. La definicin de
estructura miembro debe finalizar con una instruccin End Structure.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

membername
Obligatorio para cada propiedad, procedimiento, evento, interfaz, clase o estructura
definidos como miembro de la interfaz. Nombre del miembro.
End Interface
Termina la definicin de Interface.
Descripcin
Una interfaz define un conjunto de miembros, como las propiedades y procedimientos, que pueden
implementar las clases y estructuras. La interfaz slo define las firmas de los miembros y no sus
mecanismos internos.
Una clase o estructura implementa la interfaz proporcionando cdigo para cada miembro definido
por la interfaz. Finalmente, cuando la aplicacin crea una instancia a partir de esa clase o
estructura, existe un objeto y se ejecuta en memoria. Para obtener ms informacin,
vea Programacin orientada a objetos en Visual Basic y Interfaces en Visual Basic.
Para consultar una comparacin de interfaces y clases, vea Informacin general sobre interfaces.
Slo puede utilizar Interface en un espacio de nombres o al nivel de mdulo. Esto significa que
el contexto de la declaracin de una interfaz debe ser un archivo de cdigo fuente, espacio de
nombres, clase, estructura, mdulo o interfaz y no puede ser un procedimiento ni un bloque. Para
obtener ms informacin, vea Contextos de declaracin y niveles de acceso predeterminados.
Las interfaces tienen Friend (Visual Basic) como acceso predeterminado. Puede ajustar sus niveles
de acceso con los modificadores de acceso. Para obtener ms informacin, vea Niveles de acceso
en Visual Basic.
Reglas
Anidar interfaces. Puede definir una interfaz dentro de otra. La interfaz exterior se
denomina la interfaz contenedora y la interfaz interior se denomina interfaz anidada.
Declaracin de miembro. Cuando declara una propiedad o procedimiento como un
miembro de una interfaz, est definiendo slo la firma de esa propiedad o procedimiento.
Esto incluye el tipo de elemento (propiedad o procedimiento), sus parmetros y tipos de
parmetro y su tipo de valor devuelto. Por esta razn, la definicin de miembro slo utiliza
una lnea de cdigo y las instrucciones de terminacin como End Function o End
Property no son vlidas en las interfaces.
En cambio, cuando define una enumeracin o estructura, o una clase o interfaz anidada, es
necesario incluir sus miembros de datos.
Modificadores de miembros. No puede utilizar ningn modificador de acceso al definir
miembros de mdulo de definicin, ni se puede especificar Shared (Visual Basic) ni ningn
modificador de procedimiento excepto Overloads. Puede declarar cualquier miembro
con Shadows y puede utilizar Default (Visual Basic) al definir una propiedad, as
como ReadOnly (Visual Basic) o WriteOnly.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Herencia. Si la interfaz utiliza la Inherits (Instruccin), puede especificar una o ms
interfaces base. Puede heredar de dos interfaces aun cuando cada una de ellas defina un
miembro con el mismo nombre. De hacerlo as, el cdigo que implementa debe utilizar la
calificacin de nombres para especificar qu miembro est implementando.
Una interfaz no puede heredar de otra interfaz con un nivel de acceso ms restrictivo. Por
ejemplo, una interfaz Public no puede heredar una interfaz de tipo Friend.
Una interfaz no puede heredar de una interfaz anidada dentro de ella.
Implementacin. Cuando una clase utiliza la instruccin Implements (Visual Basic) para
implementar esta interfaz, debe implementar todos los miembros definidos dentro de la
interfaz. Adems, cada firma incluida el cdigo que implementa debe coincidir exactamente
con la firma correspondiente definida en esta interfaz. Sin embargo, el nombre del miembro
del cdigo que implementa no tiene por qu coincidir con el nombre de miembro definido en
la interfaz.
Cuando una clase est implementando un procedimiento, no puede designar el
procedimiento como Shared.
Propiedad predeterminada. Una interfaz puede especificar a lo sumo una propiedad como
su propiedad predeterminada, a la que se puede hacer referencia sin utilizar el nombre de
propiedad. Esta propiedad se especifica declarndola con el modificador Default (Visual
Basic). Para obtener ms informacin, vea Propiedades predeterminadas.
Observe que esto significa que una interfaz slo puede definir una propiedad
predeterminada si no hereda ninguna.
Comportamiento
Nivel de acceso. Todos los miembros de interfaz tienen implcitamente acceso Public
(Visual Basic). No puede utilizar ningn modificador de acceso al definir un miembro. Sin
embargo, una clase que implementa la interfaz puede declarar un nivel de acceso para cada
miembro implementado.
Si asigna una instancia de clase a una variable, el nivel de acceso de sus miembros puede
depender de si el tipo de datos de la variable es el de la interfaz subyacente o el de la clase
implementadora. Esto se ilustra en el siguiente ejemplo:
Public Interface IDemo
Sub doSomething()
End Interface
Public Class implementIDemo
Implements IDemo
Private Sub doSomething() Implements IDemo.doSomething
End Sub
End Class
Dim varAsInterface As IDemo = New implementIDemo()
Dim varAsClass As implementIDemo = New implementIDemo()

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Si tiene acceso a los miembros de clase a travs de varAsInterface, todos ellos tienen
acceso pblico. Sin embargo, si tiene acceso a los miembros a travs de varAsClass, el
procedimiento SubdoSomething tiene acceso privado.
mbito. Una interfaz est en mbito a lo largo de su espacio de nombres, clase, estructura
o mdulo.
El mbito de cada uno de los miembros de la interfaz es la interfaz completa.
Perodo de duracin. Una interfaz no tiene en s misma un perodo de duracin, ni tampoco
sus miembros. Cuando una clase implementa una interfaz y se crea un objeto como una
instancia de esa clase, el objeto tiene un perodo de duracin dentro de la aplicacin en la
que se est ejecutando. Para obtener ms informacin, vea "Perodo de duracin"
enInstruccin Class (Visual Basic).
Ejemplo
El ejemplo siguiente utiliza la instruccin Interface para definir una interfaz
denominada thisInterface, que se debe implementar con una instruccin Property y una
instruccin Function.
Public Interface thisInterface
Property thisProp(ByVal thisStr As String) As Char
Function thisFunc(ByVal thisInt As Integer) As Integer
End Interface

Observe que las instrucciones Property y Function no introducen el bloques que terminan
con End Property y End Function dentro de la interfaz. Una interfaz slo define las firmas de sus
miembros. Los bloques Property y Function completos aparecen en las clases que
implementan thisInterface.

Is (Visual Basic)
Presenta una clusula Is que realiza una comparacin.
Descripcin
La palabra clave Is se utiliza con la palabra clave TypeOf en una expresin TypeOf...Is para
comprobar si el tipo en tiempo de ejecucin de una variable es compatible con un tipo determinado.
La palabra clave Is se puede utilizar en estos contextos:
Is (Operador)
Select...Case (Instruccin)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


IsNot (Operador)
Compara dos variables de referencia de objeto.
result = object1 IsNot object2

Partes
result
Requerido. Valor Boolean.
object1
Requerido. Cualquier variable o expresin de tipo Object.
object2
Requerido. Cualquier variable o expresin de tipo Object.
Descripcin
El operador IsNot determina si dos referencias a objeto hacen referencia a objetos diferentes. Sin
embargo, no establece comparaciones entre valores. Si object1 y object2 hacen referencia la
misma instancia de objeto exacta, result da como resultado False; si no es as, result da como
resultado True.
IsNot es el opuesto del operador Is. La ventaja de IsNot es que puede evitar sintaxis extraa
con Not e Is, que puede ser difcil de leer.
Puede utilizar los operadores Is e IsNot para probar objetos enlazados en tiempo de compilacin y
en tiempo de ejecucin.
Ejemplo
El ejemplo de cdigo siguiente utiliza los operadores Is e IsNot para lograr la misma comparacin.
Dim o1, o2 As New Object
If Not o1 Is o2 Then MsgBox("o1 and o2 do not refer to the same instance.")
If o1 IsNot o2 Then MsgBox("o1 and o2 do not refer to the same instance.")

...............................................................................................................................................................
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Lib
Introduce una clusula Lib que identifica el archivo externo (archivo DLL o recurso de cdigo) que
contiene un procedimiento externo.
Descripcin
La palabra clave Lib se puede utilizar en este contexto:
Declare (Instruccin)

Like (Operador)

Compara una cadena respecto a un modelo.

result = string Like pattern


Partes
result
Obligatoria. Cualquier variable de tipo Boolean. El resultado ser un valor de
tipo Boolean que indicar si string satisface o no el modelo pattern.
string
Obligatoria. Cualquier expresin de tipo String.
pattern
Obligatoria. Cualquier expresin String que cumpla las convenciones de coincidencia de
modelos que se describen en la seccin "Comentarios".
Descripcin
Si el valor de string coincide con el modelo contenido en pattern, result es True. Si la cadena no
coincide con el modelo, result es False. Si tanto string como pattern son cadenas vacas, el
resultado es True.
Mtodo de comparacin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El comportamiento del operador Like depende de Option Compare (Instruccin). El mtodo de
comparacin de cadenas predeterminado para cada archivo de cdigo fuente es Option Compare
Binary.
Opciones de modelo
El modelo de coincidencias integrado es una flexible herramienta para establecer comparaciones
entre cadenas. Las caractersticas de coincidencia de modelos permiten comparar cada carcter
de string con un carcter concreto, un carcter comodn, una lista de caracteres o un intervalo de
caracteres. En la siguiente tabla se muestran los caracteres permitidos en pattern y aquellos
caracteres con los que coinciden.
Caracteres de pattern Coincidencias en string
? Cualquier carcter individual
* Cero o ms caracteres
# Cualquier dgito individual (0-9)
[charlist] Cualquier carcter individual de charlist
[!charlist] Cualquier carcter individual que no est incluido en charlist


Listas de caracteres
Se puede utilizar un grupo de uno o varios caracteres (charlist) entre corchetes ([ ]) para hacer
coincidir cualquier carcter individual de string; este grupo podr incluir prcticamente cualquier
cdigo de caracteres, dgitos incluidos.
Un signo de exclamacin de cierre (!) situado al principio de charlist significa que se encontrar una
coincidencia si string contiene cualquier carcter no incluido en charlist. Cuando se use sin
corchetes, el signo de cerrar exclamacin coincidir consigo mismo.
Caracteres especiales
Si desea buscar caracteres especiales: corchete de apertura ([), interrogacin de cierre (?) signo
de nmero (#) y asterisco (*), escrbalos entre corchetes. No se puede usar el corchete de cierre (])
dentro de un grupo para identificar una autocoincidencia, pero s fuera de un grupo, como carcter
individual.
La secuencia [] se considera una cadena de longitud cero (""). Sin embargo, no puede formar parte
de una lista de caracteres encerrada entre corchetes. Si desea comprobar si una posicin
en string contiene un carcter de un grupo de caracteres o no contiene ninguno, puede
utilizar Like dos veces.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Intervalos de caracteres
Si utiliza un guin () para separar los lmites superior e inferior del intervalo, charlist puede
especificar un intervalo de caracteres. Por ejemplo, [AZ] arroja una coincidencia si la posicin de
caracteres correspondiente en string contiene cualquier carcter comprendido en el intervalo AZ,
y [!HL] arroja una coincidencia si la posicin de caracteres correspondiente contiene cualquier
carcter que no est comprendido en el intervalo HL.
Cuando se especifique un intervalo de caracteres, stos debern aparecer en orden ascendente,
es decir, de menor a mayor. Eso significa que [AZ] es un modelo vlido, pero [ZA] no.
Varios intervalos de caracteres
Para especificar varios intervalos en la misma posicin de caracteres, sitelos entre los mismos
corchetes sin delimitadores. Por ejemplo, [ACXZ] arroja una coincidencia si la posicin de
caracteres correspondiente en string contiene cualquier carcter comprendido en el intervalo AC o
en el intervalo XZ.
Uso del guin
Un guin () puede aparecer tanto al principio (despus de un signo de exclamacin, si lo hay)
como al final de charlist para identificar una autocoincidencia. En cualquier otra posicin, el guin
identifica un intervalo de caracteres delimitado por los caracteres a ambos lados de l.
Secuencia de ordenacin
El significado de un intervalo especfico depender del orden de los caracteres en tiempo de
ejecucin (segn venga determinado por OptionCompare y la configuracin regional del sistema
en que se est ejecutando el cdigo). Con OptionCompareBinary, el intervalo [AE] coincide
con A, B, C, D y E. Con OptionCompareText, [AE] coincide con A, a, , , B, b, C, c, D, d,E y e.
El intervalo no coincide con o porque los caracteres acentuados se intercalan despus de los
caracteres sin acento en el criterio de ordenacin.
Caracteres dgrafos
En algunos idiomas, existen caracteres alfabticos que representan dos fonemas distintos. Por
ejemplo, existen algunos idiomas que utilizan el carcter para representar los
sonidos a y ecuando aparecen juntos. El operador Like reconoce que el carcter dgrafo unitario y
los dos caracteres individuales son equivalentes.
Cuando en la configuracin regional del sistema se especifica un idioma que utiliza un carcter
dgrafo, la aparicin de un carcter dgrafo unitario, ya sea en pattern o en string, coincidir con la
secuencia de dos caracteres de la otra cadena. Del mismo modo, un carcter dgrafo que aparezca
en pattern entre corchetes (aislado, en una lista o en un intervalo) coincidir con la secuencia de
dos caracteres equivalente en string.
Sobrecarga
El operador Like se puede sobrecargar, lo que significa que una clase o una estructura pueden
definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Si el cdigo utiliza este operador en una clase o estructura de este tipo, asegrese de conocer su
comportamiento redefinido.
Ejemplo
En este ejemplo se utiliza el operador Like para comparar cadenas en varios modelos. Los
resultados se introducen en una variable de tipo Boolean que indica si cada cadena satisface el
modelo.
Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
' and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
' beginning, an "a" at the end, and any number of characters in
' between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
' characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the
' set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
' an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
' followed by any character from the set "L" through "P", followed
' by any single-digit number, and end with any character NOT in
' the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
' "B", followed by any single character, followed by a "T", and end
' with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
' a "B", followed by any single character, followed by a "T", and
' end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"

Long (Tipo de datos, Visual Basic)
Contiene enteros de 64 bits (8 bytes) con signo cuyo valor se sita entre -
9.223.372.036.854.775.808 y 9.223.372.036.854.775.807 (9,2... E+18).
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
Utilice el tipo de datos Long para incluir nmeros enteros demasiado grandes para ajustarse en el
tipo de datos Integer.
El valor predeterminado de Long es 0.
Sugerencias de programacin
Consideraciones sobre la interoperabilidad. Si interacta con componentes no escritos
para .NET Framework, por ejemplo, objetos de automatizacin o COM, recuerde
que Longtiene un ancho de datos diferente (32 bits) en otros entornos. Al pasar un
argumento de 32 bits a esos componentes, declrelo en el cdigo de Visual
Basic como Integer en lugar deLong.
Adems, la automatizacin no admite enteros de 64 bits en Windows 95, Windows 98,
Windows ME o Windows 2000. No se puede pasar ningn argumento Long de Visual Basic
a un componente de automatizacin en estas plataformas.
Ampliacin. El tipo de datos Long se ampla a Decimal, Single o Double. Esto significa
que se puede convertir Byte en cualquiera de estos tipos sin encontrar un
errorSystem.OverflowException.
Caracteres de tipo Al agregar el carcter de tipo de literal L a un literal, el tipo de datos se
convierte al tipo de datos Long. Si se agrega el carcter de tipo de identificador & a
cualquier identificador, se convierte su tipo de datos al tipo Long.
Tipo en Framework. El tipo correspondiente en .NET Framework es la estructura System.In
t64.

Loop
Finaliza un bucle presentado con una instruccin Do.
Descripcin
La palabra clave Loop se puede utilizar en este contexto:
Do...Loop (Instrucciones)

Me
Proporciona una forma de hacer referencia a la instancia especfica de una clase o estructura
donde se est ejecutando el cdigo actualmente.
Descripcin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

La palabra clave 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 la instancia actual de la clase Form como un argumento
mediante la siguiente instruccin.
ChangeFormColor(Me)
La palabra clave Me se puede utilizar en estos contextos:
Class (Instruccin)
Structure (Instruccin)
...
Mod (Operador, Visual Basic)
Divide dos nmeros y devuelve slo el resto.

number1 Mod number2

Partes
number1
Obligatoria. Cualquier expresin numrica.
number2
Obligatoria. Cualquier expresin numrica.
Tipos admitidos
Todos los tipos numricos, incluidos los tipos de punto flotante sin signo y Decimal.
Resultado
El resultado es el resto que queda despus de dividir number1 entre number2. Por ejemplo, la
expresin 14 Mod 4 se evala como 2.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
Si number1 o number2 es un valor de coma flotante, se devuelve el resto en punto flotante de la
divisin. El tipo de datos del resultado es el tipo de datos ms pequeo que puede contener todos
los valores posibles que resultan de la divisin con los tipos de datos de number1 y number2.
Si number1 o number2 se evala como Nothing, se trata como si fuese cero.
Los operadores relacionados son los siguientes:
\ (Operador) devuelve el cociente entero de una divisin. Por ejemplo, la expresin 14 \ 4 se
evala como 3.
El / (Operador, Visual Basic) devuelve el cociente completo, incluso el resto, como un
nmero en punto flotante. Por ejemplo, la expresin 14 / 4 se evala como 3,5.
Intento de dividir por cero
Si number2 se evala como cero, el comportamiento del operador Mod depende del tipo de datos
de los operandos. Una divisin de enteros produce una excepcin DivideByZeroException. Una
divisin de punto flotante devuelve NaN.
Frmula equivalente
La expresin a Mod b es equivalente a cualquiera de las frmulas siguientes:
a - (b * (a \ b))
a - (b * Fix(a / b))
Imprecisin de punto flotante
Cuando trabaje con nmeros en punto flotante, tenga presente que no siempre tienen una
representacin precisa en memoria. Esto podra producir que ciertas operaciones arrojaran
resultados inesperados, como una comparacin de valores y el operador Mod. Para obtener ms
informacin, vea Solucionar problemas de tipos de datos.

Sobrecarga
El operador Mod se puede sobrecargar, lo que significa que una clase o estructura pueden volver a
definir su comportamiento. Si su cdigo aplica Mod a una instancia de una clase o estructura que
incluye este tipo de sobrecarga, asegrese de conocer su comportamiento redefinido. Para obtener
ms informacin, vea Procedimientos de operador.
Ejemplo
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

En el ejemplo siguiente se usa el operador Mod para dividir dos nmeros y devolver nicamente el
resto. Si uno de ellos es un nmero con punto flotante, el resto resultante tambin ser un nmero
punto flotante.
Dim testResult As Double
testResult = 10 Mod 5
testResult = 10 Mod 3
testResult = 12 Mod 4.3
testResult = 12.6 Mod 5
testResult = 47.9 Mod 9.35

Las expresiones del ejemplo anterior devuelven los valores 0, 1, 3.4, 2.6 y 1.15.
En el ejemplo siguiente se muestra la imprecisin potencial de operandos de punto flotante. En la
primera instruccin, los operandos son Double, y 0.2 es una fraccin binaria de recursividad infinita
cuyo valor almacenado es 0.20000000000000001. En la segunda instruccin, el carcter de tipo de
literal D obliga a que los dos operandos sean Decimal, y 0.2 tiene una representacin precisa.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.

Module (Instruccin)
Declara el nombre de un mdulo e introduce la definicin de las variables, propiedades, eventos y
procedimientos que incluye el mdulo.

[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module

Partes
attributelist
Opcional. Ver Lista de atributos.
accessmodifier
Opcional. Puede ser una de las siguientes:
Public
Friend
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Ver Niveles de acceso en Visual Basic.
name
Obligatorio. Nombre de este mdulo. Ver Nombres de elementos declarados.
statements
Opcional. Instrucciones que definen las variables, propiedades, eventos, procedimientos y
tipos anidados de este mdulo.
End Module
Termina la definicin Module.
Descripcin
Una instruccin Module define un tipo de referencia disponible en su espacio de nombres.
Un mdulo (a veces denominado mdulo estndar) es similar a una clase pero con algunas
distinciones importantes. Cada mdulo tiene exactamente una instancia y no necesita ser creado ni
asignado a una variable. Los mdulos no admiten la herencia ni implementan interfaces. Tenga en
cuenta que un mdulo no es un tipo en el sentido en que lo son una clase o una estructura; es
decir, no puede declarar que un elemento de programacin tenga el tipo de datos de un mdulo.
Slo puede utilizar Module en el nivel de espacio de nombres. Esto significa que el contexto de la
declaracin de un mdulo debe ser un archivo de cdigo fuente o espacio de nombres y no puede
ser una clase, estructura, mdulo, interfaz, procedimiento o bloque. No puede anidar un mdulo
dentro de otro mdulo ni dentro de cualquier tipo. Para obtener ms informacin, vea Contextos de
declaracin y niveles de acceso predeterminados.
Un mdulo tiene el mismo perodo de duracin que el programa. Dado que sus miembros son
todos de tipo Shared, tambin tienen los perodos de duracin iguales al del programa.
De manera predeterminada, el acceso a los mdulos es de tipo Friend (Visual Basic). Puede
ajustar sus niveles de acceso con los modificadores de acceso. Para obtener ms informacin,
veaNiveles de acceso en Visual Basic.
Todos los miembros de un mdulo son de forma implcita de tipo Shared.
Clases y mdulos
Estos elementos tienen muchas similitudes, pero hay tambin algunas diferencias importantes.
Terminologa. Las versiones anteriores de Visual Basic reconocen dos tipos de
mdulos: mdulos de clase (archivos .cls) y mdulos estndar (archivos .bas). La versin
actual les llamaclases y mdulos, respectivamente.
Miembros compartidos. Puede controlar si un miembro de una clase es un miembro
compartido o un miembro de instancia.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Orientacin a objetos. Las clases estn orientadas a los objetos, pero los mdulos no. Por
tanto, slo se pueden crear instancias como objetos de las clases. Para obtener ms
informacin, vea Clases y mdulos.
Reglas
Modificadores. Todos los miembros de mdulo son implcitamente de tipo Shared (Visual
Basic). No puede utilizar la palabra clave Shared al declarar un miembro y no puede
modificar el estado compartido de ningn miembro.
Herencia. Un mdulo no puede heredar de ningn tipo distinto de Object, del que heredan
todos los mdulos. En particular, un mdulo no puede heredar de otro.
No puede utilizar Inherits (Instruccin) en una definicin de mdulo, incluso si es para
especificar Object.
Propiedad Default. No puede definir Propiedades predeterminadas en un mdulo.
Comportamiento
Nivel de acceso. En un mdulo, puede declarar cada miembro con su propio nivel de
acceso. Los miembros de mdulo tienen como valor predeterminado acceso de tipo Public
(Visual Basic), excepto las variables y constantes, que tienen como valor predeterminado
acceso de tipo Private (Visual Basic). Cuando un mdulo tiene un acceso ms restringido
que uno de sus miembros, tiene prioridad el nivel de acceso del mdulo especificado.
mbito. Los mdulos se incluyen en el mbito de sus espacios de nombre.
El mbito de todos los miembros del mdulo es el mdulo completo. Observe que en todos
los miembros se realiza la promocin de tipos, que provoca que su mbito sea el espacio de
nombres que contiene el mdulo. Para obtener ms informacin.
Calificacin. Puede tener varios mdulos en un proyecto y puede declarar miembros con el
mismo nombre en dos o ms mdulos. Sin embargo, si la referencia procede del exterior del
mdulo debe calificar cualquier referencia a dichos miembros con el nombre del mdulo
adecuado. Para obtener ms informacin.
Ejemplo
Public Module thisModule
Sub Main()
Dim userName As String = InputBox("What is your name?")
MsgBox("User name is" & userName)
End Sub
' Insert variable, property, procedure, and event declarations.
End Module

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

MustInherit
Especifica que una clase slo se puede utilizar como una clase base y que no se puede crear
directamente un objeto a partir de ella.
Descripcin
La finalidad de una clase base (tambin conocida como clase abstracta) es definir la funcionalidad
comn a todas las clases que se derivan de sta. La clase base evita que las clases derivadas
tengan que redefinir los elementos comunes. En algunos casos, esta funcionalidad comn no es lo
suficientemente completa para que se pueda utilizar un objeto y cada clase derivada define la
funcionalidad que falta. En estos casos, desear utilizar el cdigo para crear objetos nicamente a
partir de las clases derivadas. Para ello, puede utilizar MustInherit en la clase base.
Otro utilidad de una clase MustInherit es restringir una variable a un conjunto de clases
relacionadas. Puede definir una clase base y derivar todos estas clases relacionadas a partir de
ella. La clase base no necesita proporcionar una funcionalidad comn a todas las clases derivadas,
aunque se puede utilizar como filtro en la asignacin de valores a las variables. Si el cdigo
utilizado declara una variable como clase base, Visual Basic permite asignar nicamente un objeto
desde una de las clases derivadas a dicha variable.
.NET Framework define varias clases MustInherit, entre las que se
incluyen Array, Enum y ValueType. ValueType es un ejemplo de una clase base que restringe una
variable. Todos los tipos de valor se derivan de ValueType. Si declara una variable
como ValueType, puede asignar slo tipos de valor a esa variable.
Reglas
Contexto de declaracin. Slo puede utilizar MustInherit en una instruccin Class.
Modificadores combinados. No se puede especificar MustInherit junto
con NotInheritable en la misma declaracin.
Ejemplo
En el ejemplo siguiente se ilustra la herencia forzada y el reemplazo forzado. La clase
base shape define una variable acrossLine. Las clases circle y square se derivan de shape.
Heredan la definicin de acrossLine, pero deben definir la funcin area porque ese clculo es
diferente en cada tipo de forma.
Public MustInherit Class shape
Public acrossLine As Double
Public MustOverride Function area() As Double
End Class
Public Class circle : Inherits shape
Public Overrides Function area() As Double
Return Math.PI * acrossLine
End Function
End Class
Public Class square : Inherits shape
Public Overrides Function area() As Double
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Return acrossLine * acrossLine
End Function
End Class
Public Class consumeShapes
Public Sub makeShapes()
Dim shape1, shape2 As shape
shape1 = New circle
shape2 = New square
End Sub
End Class

Puede declarar shape1 y shape2 para que sean del tipo shape. Sin embargo, no puede crear un
objeto a partir de shape porque carece de la funcionalidad de area y se ha marcado
comoMustInherit.
Dado que se declaran como shape, las variables shape1 y shape2 se restringen a los objetos
procedentes de las clases derivadas circle y square. Visual Basic no permite asignar ningn otro
objeto a estas variables, lo que proporciona un elevado nivel de seguridad de tipos.
Uso
El modificador MustInherit se puede utilizar en este contexto:
Class (Instruccin)

MustOverride
Especifica que una propiedad o procedimiento no se implementa en esta clase y debe
reemplazarse en una clase derivada para poder utilizarse.
Descripcin
Slo se pude utilizar MustOverride en una instruccin de declaracin de procedimiento o
propiedad. La propiedad o el procedimiento que especifica MustOverride debe ser un miembro de
una clase y sta se debe marcar como MustInherit.
Reglas
Declaracin incompleta. Si especifica MustOverride, no proporciona lneas adicionales de
cdigo para la propiedad o el procedimiento, ni siquiera las instrucciones End Function,End
Property o End Sub.
Modificadores combinados. No se puede especificar MustOverride junto
con NotOverridable, Overridable o Shared en la misma declaracin.
Sombreado y reemplazo. El sombreado y el reemplazo definen de nuevo un elemento
heredado, pero hay diferencias significativas entre los dos enfoques. Para obtener ms
informacin, vea Sombrear en Visual Basic.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Trminos alternativos. Un elemento que no se puede utilizar excepto en reemplazos se
denomina en ocasiones elemento virtual puro.
El modificador MustOverride se puede utilizar en estos contextos:
Instruccin Function (Visual Basic)
Property (Instruccin)
Instruccin Sub (Visual Basic)

MyBase
Proporciona una manera de hacer referencia a la clase base de la instancia de clase actual.
Descripcin
La palabra clave MyBase acta como una variable de objeto que hace referencia a la clase base
de la instancia actual de una clase. Generalmente, MyBase se utiliza para tener acceso a
miembros de la clase base que se reemplazan o sombrean en una clase derivada. En
particular, MyBase.New se utiliza para llamar explcitamente a un constructor de una clase base
desde un constructor de una clase derivada.
No se permite utilizar MyBase para llamar a mtodos base MustOverride.

MyClass
Proporciona una manera de hacer referencia a los miembros de la instancia de clase actual sin que
se reemplacen con clases derivadas.
Descripcin
La palabra clave MyClass acta como una variable de objeto que hace referencia a la instancia
actual de una clase tal como se implement originalmente. MyClass es similar a Me, pero cada
llamada a un mtodo y propiedad de MyClass se trata como si el mtodo o propiedad
fuesen NotOverridable. Por lo tanto, el mtodo o propiedad no se ve afectado por el reemplazo de
una clase derivada. En el siguiente ejemplo se comparan Me y MyClass.
Class baseClass
Public Overridable Sub testMethod()
MsgBox("Base class string")
End Sub
Public Sub useMe()
' The following call uses the calling class's version, even if
' that version is an override.
Me.testMethod()
End Sub
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Public Sub useMyClass()
' The following call uses this version and not any override.
MyClass.testMethod()
End Sub
End Class
Class derivedClass : Inherits baseClass
Public Overrides Sub testMethod()
MsgBox("Derived class string")
End Sub
End Class
Class testClasses
Sub startHere()
Dim testObj As derivedClass = New derivedClass()
' The following call displays "Derived class string".
testObj.useMe()
' The following call displays "Base class string".
testObj.useMyClass()
End Sub
End Class
Aunque derivedClass reemplaza a testMethod, la palabra clave MyClass en useMyClass anula el
efecto del reemplazo y el compilador resuelve la llamada a la versin de la clase base
detestMethod.
MyClass no se puede utilizar dentro de un mtodo Shared (Visual Basic), pero puede utilizarse en
un mtodo de instancia para obtener acceso a un miembro compartido de una clase.

Namespace (Instruccin)
Declara el nombre de un espacio de nombres y determina que el cdigo fuente que sigue a la
declaracin se compile dentro de ese espacio de nombres.
Namespace { name | name.name }
[ componenttypes ]
End Namespace

Partes
name
Obligatorio. Un nombre nico que identifica el espacio de nombres. Debe ser un
identificador de Visual Basic vlido. Para obtener ms informacin, vea Nombres de
elementos declarados.
componenttypes
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Elementos que forman el espacio de nombres. Entre estos elementos se pueden
citar enumeraciones, estructuras, interfaces, clases, mdulos, delegados y otros espacios
de nombres.
End Namespace
Termina un bloque Namespace.
Descripcin
Los espacios de nombres se utilizan como un sistema de organizacin. Proporcionan una manera
de clasificar y presentar elementos de programacin que se exponen a otros programas y
aplicaciones. Tenga en cuenta que un espacio de nombres no es un tipo en el sentido en que lo
son una clase o una estructura; es decir, no puede declarar que un elemento de programacin
tenga el tipo de datos de un espacio de nombres.
Slo puede utilizar una instruccin Namespace en el nivel de archivo o de espacio de nombres.
Esto significa que el contexto de la declaracin de un espacio de nombres debe ser un archivo de
cdigo fuente u otro espacio de nombres y no puede ser una clase, estructura, mdulo, interfaz o
procedimiento. Para obtener ms informacin.
Los espacios de nombres se tratan como si contasen con un nivel de acceso de tipo Public. Se
puede tener acceso a un espacio de nombres desde el cdigo del mismo proyecto, desde otros
proyectos que hacen referencia a este proyecto y desde los ensamblados creados a partir del
proyecto.
Reglas
Atributos. No puede aplicar atributos a un espacio de nombres. Los atributos incorporan
informacin a los metadatos del ensamblado, que no son significativos para los
clasificadores de origen como los espacios de nombres.
Modificadores. No puede aplicar modificadores de acceso ni de procedimiento ni cualquier
otro modificador a un espacio de nombres. Dado que no es un tipo, estos modificadores no
son significativos.
Anidado. Puede declarar un espacio de nombres dentro de otro. No existe un lmite estricto
en los niveles de anidacin que puede declarar, pero debe recordar que si otro cdigo tiene
acceso a los elementos declarados en el espacio de nombres ms interno, debe utilizar una
cadena de calificacin con los nombres de todos los espacios de nombres de la jerarqua de
anidacin.
Comportamiento
Nivel de acceso. Los elementos de programacin declarados en el nivel del espacio de
nombres, es decir, dentro de un espacio de nombres pero no dentro de cualquier otro
elemento, pueden tener acceso de tipo Public o Friend. Si no se especifica, el nivel de
acceso de dichos elementos tiene como valor predeterminado Friend. Los elementos que
puede declarar en el nivel de espacio de nombres incluyen clases, estructuras, mdulos,
interfaces, enumeraciones y delegados. Para obtener ms informacin, vea Contextos de
declaracin y niveles de acceso predeterminados.
Compilacin. Todos los elementos de programacin declarados a continuacin de una
instruccin Namespace pertenecen a dicho espacio de nombres. Visual Basic contina
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

compilando los elementos en el ltimo espacio de nombres declarado hasta que encuentra
una instruccin End Namespace u otra instruccin Namespace.
Agregar a un espacio de nombres. Si ya se ha definido un espacio de nombres, aunque
sea fuera del proyecto, puede agregar en l elementos de programacin. Para ello, utiliza
una instruccin Namespace para indicar a Visual Basic que compile los elementos
siguientes en dicho espacio de nombres.
En el ejemplo siguiente se define el esqueleto de una nueva clase de lista genrica y se
agrega al espacio de nombres System.Collections.Generic.
Namespace System.Collections.Generic
Class specialSortedList(Of T)
Inherits List(Of T)
' Insert code to define the special generic list class.
End Class
End Namespace
Espacio de nombres de la raz. Todos los nombres de espacios de nombres del proyecto
se basan en un espacio de nombres de raz. Visual Studio asigna el nombre de proyecto
como el espacio de nombres de raz predeterminado para todo el cdigo del proyecto. Por
ejemplo, si el proyecto se denomina Payroll, sus elementos de programacin pertenecen al
espacio de nombres Payroll. Si declara Namespace funding, el nombre completo de ese
espacio de nombres es Payroll.funding.
Si desea especificar un espacio de nombres existente en una instruccin Namespace, como
en el ejemplo de clase de lista genrica, puede establecer el espacio de nombres de raz
con un valor nulo. Para ello, elige Propiedades del proyecto en el men Proyecto men y
borra la entrada Espacio de nombres de la raz para dejar el cuadro vaco. Si no ha
realizado esto en el ejemplo de la clase de lista genrica, el compilador de Visual Basic
considera System.Collections.Generic como un nuevo espacio de nombres en el
proyectoPayroll, con el nombre completo Payroll.System.Collections.Generic.
Tambin puede utilizar la palabra clave Global para hacer referencia a los elementos de
espacios de nombres definidos fuera del proyecto. Esto permite conservar el nombre del
proyecto como espacio de nombres de la raz. As reduce la posibilidad de combinar
involuntariamente los elementos de programacin con aqullos de espacios de nombres
existentes.
Solucin de problemas
Tipos indefinidos. El espacio de nombres de la raz puede provocar concatenaciones
inesperadas de nombres de espacio de nombres. Si hace referencia a espacios de nombres
definidos fuera del proyecto, el compilador de Visual Basic puede generarlos como espacios
de nombres anidados dentro del espacio de nombres de la raz. En este caso, el compilador
no reconoce los tipos ya definidos en los espacios de nombres externos. Para evitarlo,
establezca el espacio de nombres de la raz con un valor nulo como se describe en "Espacio
de nombres de la raz" o utilice la palabra clave Global para obtener acceso a los elementos
de espacios de nombres externos.
Ejemplo
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

En el ejemplo siguiente se declaran dos espacios de nombres, uno anidado dentro del otro.
Namespace n1
Namespace n2
Class a
' Insert class definition.
End Class
End Namespace
End Namespace

En el siguiente ejemplo se declaran varios espacios de nombres anidados en una nica lnea; este
ejemplo es equivalente al anterior.
Namespace n1.n2
Class a
' Insert class definition.
End Class
End Namespace

En el ejemplo siguiente se tiene acceso a la clase definida en los ejemplos anteriores.
Dim instance As New n1.n2.a



Narrowing
Indica que un operador de conversin (CType) convierte una clase o una estructura en un tipo que
quiz no pueda incluir algunos de los valores posibles de la clase o la estructura original.
Convertir con la palabra clave Narrowing
El procedimiento de conversin debe especificar Public Shared adems de Narrowing.
Las conversiones de restriccin no son siempre satisfactorias en tiempo de ejecucin y pueden
generar errores o provocar prdida de datos. Ejemplos son Long a Integer, String a Date y un tipo
base a un tipo derivado. Esta ltima conversin es de restriccin, ya que es posible que el tipo
base no contenga todos los miembros del tipo derivado y no es, por tanto, una instancia del tipo
derivado.
Si Option Strict tiene el valor On, el cdigo que lo utiliza debe emplear CType para todas las
conversiones de restriccin.
La palabra clave Narrowing se puede utilizar en este contexto:
Operator (Instruccin)

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

New (Visual Basic)
Introduce una clusula New para crear una nueva instancia de objeto o especifica una restriccin
de constructor en un parmetro de tipo.
Descripcin
En una lista de parmetros de tipo, una restriccin New especifica que el tipo proporcionado debe
exponer un constructor sin parmetros al que el cdigo pueda tener acceso. Para obtener ms
informacin sobre los parmetros de tipo y las restricciones, ver Lista de tipos.
En una declaracin o instruccin de asignacin, una clusula New debe especificar una clase
definida a partir de la que se pueda crear la instancia. Esto significa que la clase debe exponer un
constructor al que el cdigo de llamada pueda tener acceso.
Puede utilizar una clusula New en una instruccin de declaracin o en una instruccin de
asignacin. Cuando se ejecuta la instruccin, sta llama al constructor de la clase especificada y le
pasa los argumentos que se le hayan proporcionado. En el siguiente ejemplo se muestra esta
operacin.
Dim someObj As Object
someObj = New someClass("String required by constructor")
Dim nextLabel As New Label()
Dado que las matrices son clases, New puede crear una nueva instancia de la matriz, como se
muestra en el ejemplo siguiente.
Dim intArray As Integer()
intArray = New Integer() {0, 1, 2, 3}
Common Language Runtime (CLR) produce un error OutOfMemoryException si no hay memoria
suficiente para crear la nueva instancia.
La palabra clave New se puede utilizar en estos contextos:
Instruccin Dim (Visual Basic)
Of
....
Next (Palabra clave)
Termina un bucle que se repite con diferentes valores de una variable de bucle o especifica que la
ejecucin debe continuar con la instruccin que sigue a la instruccin que gener un error.
Descripcin
La palabra clave Next se puede utilizar en estos contextos:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

For...Next (Instruccin)
For Each...Next (Instruccin)
On Error (Instruccin)
Resume (Instruccin)

Not (Operador, Visual Basic)
Lleva a cabo o la negacin lgica de una expresin de tipo Boolean o la negacin bit a bit de una
numrica.
result = Not expression

Partes
result
Obligatoria. Cualquier expresin numrica o de tipo Boolean.
expression
Obligatoria. Cualquier expresin numrica o de tipo Boolean.
Descripcin
En la siguiente tabla se muestra cmo se determina result cuando las expresiones son de
tipo Boolean:
Si expression es: El valor de result es:
True False
False True
En las expresiones numricas, el operador Not invierte los valores de bits de las expresiones
numricas y establece el bit correspondiente en result de acuerdo con la siguiente tabla:
Si el bit de expression es: El bit de result es:
1 0
0 1
Tipos de datos
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

En una negacin booleana, el tipo de datos del resultado es Boolean. En una negacin bit a bit, el
tipo de datos del resultado es el mismo que el de expression. Sin embargo, si la expresin
es Decimal, el resultado es Long.
Sobrecarga
El operador Not se puede sobrecargar, lo que significa que una clase o una estructura puede
definir de nuevo su comportamiento cuando su operando tiene el tipo de dicha clase o estructura.
Si el cdigo utiliza este operador en una clase o estructura de este tipo, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el ejemplo siguiente se utiliza el operador Not para llevar a cabo la negacin lgica de una
expresin de tipo Boolean. El resultado es un valor Boolean que representa el inverso del valor de
la expresin.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = Not (a > b)
secondCheck = Not (b > a)
En el ejemplo anterior se generan los resultados False y True, respectivamente.
En el ejemplo siguiente se utiliza el operador Not para llevar a cabo la negacin lgica de los bits
individuales de una expresin numrica. El bit en el modelo resultante se establecer en el valor
inverso del bit correspondiente en el modelo del operando, incluido el bit correspondiente al signo.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (Not a)
secondPattern = (Not b)
thirdPattern = (Not c)

En el ejemplo anterior se generan los resultados 11, 9 y 7, respectivamente.

Nothing (Visual Basic)
Representa el valor predeterminado de cualquier tipo de datos.
Descripcin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Al asignar Nothing a una variable, se establece el valor predeterminado de su tipo declarado. Si
ese tipo contiene miembros de variables, se establecen los valores predeterminados de todos
ellos. Esto se ilustra en el siguiente ejemplo:
Public Structure testStruct
Public name As String
Public number As Short
End Structure
Dim ts As testStruct, i As Integer, b As Boolean
ts = Nothing
' The preceding statement sets ts.name to "" and ts.number to 0.
i = Nothing
b = Nothing
' The preceding statements set i to 0 and b to False.
Si la variable es de un tipo de referencia, es decir, una variable de objeto; Nothing significa que la
variable no est asociada a ningn objeto. En el siguiente ejemplo se muestra cmo.
Dim testObject As Object
testObject = Nothing
' The preceding statement sets testObject to not refer to any instance.
Cuando se asigna Nothing a una variable de objeto, ya no hace referencia a una instancia de
objeto. Si la variable anteriormente haca referencia a una instancia, establecer dicha instancia
enNothing no causar la finalizacin de la misma. Slo despus de que el recolector de elementos
no utilizados (GC) detecte que ya no hay referencias activas, la instancia finalizar, y la memoria y
los recursos del sistema asociados con ella quedarn liberados.

NotInheritable
Especifica que una clase que no se puede utilizar como clase base.
Descripcin
Trminos alternativos. Una clase que no se puede heredar se denomina en ocasiones
clase sellada.
El modificador NotInheritable se puede utilizar en este contexto:
Instruccin Class (Visual Basic)
...............................................................................................................................................................
NotOverridable
Especifica que una propiedad o un procedimiento no se puede reemplazar en una clase derivada.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
NotOverridable es el valor predeterminado de un procedimiento o propiedad que no reemplaza
por s mismo a un procedimiento o propiedad de clase base.
Un elemento que no se puede reemplazar se denomina en ocasiones elemento sellado.
Reglas
Contexto de la declaracin. Slo puede utilizarse NotOverridable en una propiedad o
instruccin de declaracin de procedimiento. Slo puede especificar NotOverridable en una
propiedad o procedimiento que reemplaza otra propiedad o procedimiento, es decir, slo en
combinacin con Overrides.
Modificadores combinados. No se puede especificar NotOverridable junto
con MustOverride, Overridable o Shared en la misma declaracin.
El modificador NotOverridable se puede utilizar en estos contextos:
Instruccin Function (Visual Basic)
Property (Instruccin)
Instruccin Sub (Visual Basic)

Object (Tipo de datos)
Contiene direcciones de 32 bits (4 bytes) que hacen referencia s objetos. Se puede asignar
cualquier tipo de referencia (cadena, matriz, clase o interfaz) a una variable Object. Una
variableObject tambin puede hacer referencia a datos de cualquier tipo de valor
(numrico, Boolean, Char, Date, estructura o enumeracin).
Descripcin
El tipo de datos Object puede sealar a datos de cualquier tipo de datos, incluso cualquier
instancia de objeto que su aplicacin reconozca. Utilice Object cuando en tiempo de compilacin
no conoce a qu tipo de datos puede sealar la variable.
El valor predeterminado de Object es Nothing (una referencia nula).
Tipos de datos
Puede asignar una variable, constante o expresin de cualquier tipo de datos a una
variable Object. Para determinar el tipo de datos a los que hace referencia actualmente una
variableObject, puede utilizar el mtodo GetTypeCode de la clase System.Type. Esto se ilustra en
el siguiente ejemplo:
Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

datTyp = Type.GetTypeCode(myObject.GetType())
El tipo de datos Object es un tipo de referencia. Sin embargo, Visual Basic trata una
variable Object como un tipo de valor cuando hace referencia a datos de un tipo de valor.
Almacenamiento
Independientemente del tipo de datos al que haga referencia, una variable Object no contiene el
valor de datos en s, sino un puntero al valor. Siempre utiliza cuatro bytes en la memoria del
sistema, pero sin incluir el almacenamiento para los datos que representan el valor de la variable.
Debido al cdigo que el puntero utiliza para buscar los datos, las variables Object que contienen
tipos de valor son de acceso un poco ms lento que las variables que tienen un tipo explcito.
Sugerencias de programacin
Consideraciones sobre interoperabilidad. Si trabaja con componentes no escritos para
.NET Framework, por ejemplo objetos de automatizacin o COM, recuerde que los tipos de
puntero de otros entornos no son compatibles con el tipo Object de Visual Basic.
Rendimiento. Una variable que declara con el tipo Object es bastante flexible para
contener una referencia a cualquier objeto. Sin embargo, cuando invoca un mtodo o
propiedad en este tipo de variable, se produce siempre el enlace en tiempo de ejecucin.
Para forzar el enlace en tiempo de compilacin y un mejor rendimiento, declare la variable
con un nombre de clase especfico o convirtala en el tipo de datos especfico.
Cuando declara una variable de objeto, intente utilizar un tipo de clase concreto, por
ejemplo OperatingSystem, en lugar del tipo Object generalizado. Tambin es preferible
utilizar la clase ms especfica disponible, como TextBox en lugar de Control, as podr
tener acceso a sus propiedades y mtodos. Normalmente puede utilizar la
lista Clases del Examinador de objetos para buscar nombres de clase disponibles.
Ampliacin. Todos los tipos de datos y todos los tipos de referencia se amplan al tipo de
datos Object. Esto significa que se puede convertir cualquier tipo a Object sin encontrar un
error System.OverflowException.
Sin embargo, si convierte entre tipos de valor y Object, Visual Basic realiza unas
operaciones llamadas conversin boxing y conversin unboxing, que ralentizan la ejecucin.
Caracteres de tipo.Object no tiene ningn carcter de tipo de literal o de tipo de
identificador.
Tipo de Framework. El tipo correspondiente en .NET Framework es la
clase System.Object.
Ejemplo
El ejemplo siguiente ilustra una variable Object que seala a una instancia de objeto.
Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0




Of
Introduce una clusula Of que identifica un parmetro de tipo en una clase, estructura, interfaz,
delegado o procedimiento genricos. Para obtener informacin sobre tipos genricos.
Utilizar la palabra clave Of
El ejemplo de cdigo siguiente utiliza la palabra clave Of para definir el contorno de una clase que
acepta dos parmetros de tipo. Restringe el parmetro keyType mediante la interfazIComparable,
lo que significa que el cdigo utilizado debe proporcionar un argumento de tipo que
implemente IComparable. Esto es necesario para que el procedimiento add pueda llamar al
mtodo System.IComparable.CompareTo(System.Object). Para obtener ms informacin sobre
restricciones, vea Lista de tipos.
Public Class Dictionary(Of entryType, keyType As IComparable)
Public Sub add(ByVal e As entryType, ByVal k As keyType)
Dim dk As keyType
If k.CompareTo(dk) = 0 Then
End If
End Sub
Public Function find(ByVal k As keyType) As entryType
End Function
End Class
Si finaliza la definicin de la clase anterior, puede construir una variedad de clases dictionary a
partir de ella. Los tipos que proporciona a entryType y keyType determinan qu tipo de entrada
contiene la clase y qu tipo de clave asocia con cada entrada. Debido a la restriccin, debe
proporcionar a keyType un tipo que implemente IComparable.
El ejemplo de cdigo siguiente crea un objeto que contiene entradas String y asocia una
clave Integer a cada una de ellas. Integer implementa IComparable y satisface de este modo la
restriccin de keyType.
Dim d As New dictionary(Of String, Integer)
La palabra clave Of se puede utilizar en estos contextos:
Class (Instruccin)
Delegate (Instruccin)
Function (Instruccin)
Interface (Instruccin)
Structure (Instruccin)
Sub (Instruccin)

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

On
Presenta una respuesta a un error en tiempo de ejecucin o activa una opcin del compilador.
Descripcin
La palabra clave On se utiliza en estos contextos:
On Error (Instruccin)
Option Explicit (Instruccin)
Option Strict (Instruccin)

Operator (Instruccin)
Declara el smbolo de operador, los operandos y el cdigo que definen un procedimiento de
operador en una clase o estructura.

[ <attrlist> ] Public [ Overloads ] Shared [ Shadows ] [ Widening | Narrowing ]
Operator operatorsymbol ( operand1 [, operand2 ]) [ As [ <attrlist> ] type ]
[ statements ]
[ statements ]
Return returnvalue
[ statements ]
End Operator

Partes

attrlist
Opcional. Ver la Lista de atributos.
Public
Obligatorio. Indica que este procedimiento de operador tiene acceso de tipo Public (Visual
Basic).
Overloads
Opcional. Ver Overloads.
Shared
Obligatorio. Indica que este procedimiento de operador es de tipo Shared (Visual Basic).
Shadows
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Ver Shadows.
Widening
Se requiere para un operador de conversin a menos que especifique Narrowing. Indica
que este procedimiento de operador define una conversin de tipo Widening. Vea
"Conversiones de ampliacin y restriccin" en esta pgina de Ayuda.
Narrowing
Se requiere para un operador de conversin a menos que especifique Widening. Indica
que este procedimiento de operador define una conversin de tipo Narrowing. Ver
"Conversiones de ampliacin y restriccin" en esta pgina de Ayuda.
operatorsymbol
Obligatorio. El smbolo o identificador del operador que define este procedimiento de
operador.
operand1
Obligatorio. El nombre y tipo del operando nico de un operador unario (incluido un
operador de conversin) o el operando izquierdo de un operador binario.
operand2
Obligatorio para los operadores binarios. El nombre y tipo del operando derecho de un
operador binario.
operand1 y operand2 tienen la sintaxis y las partes siguientes:
[ ByVal ] operandname [ As operandtype ]
Parte Descripcin
ByVal Opcional, pero el mecanismo para pasar argumentos debe ser ByVal.
operandname Obligatorio. Nombre de la variable que representa este operando. Vea Nombres de
elementos declarados.
operandtype Opcional a menos que Option Strict est establecido en On. Tipo de datos de este
operando.

type
Opcional a menos que Option Strict est establecido en On. Tipos de datos del valor que
devuelve el procedimiento de operador.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

statements
Opcional. Bloquee de instrucciones que ejecuta el procedimiento de operador.
returnvalue
Obligatorio. El valor que el procedimiento de operador devuelve al cdigo de llamada.
EndOperator
Obligatorio. Termina la definicin de este procedimiento de operador.
Descripcin
Slo puede utilizar Operator en una clase o una estructura. Esto significa que el contexto de
declaracin de un operador no puede ser un archivo de cdigo fuente, espacio de nombres,
mdulo, interfaz, procedimiento o bloque. Para obtener ms informacin, vea Contextos de
declaracin y niveles de acceso predeterminados.
Todos los operadores deben ser de tipo Public Shared. No puede
especificar ByRef, Optional o ParamArray en ningn operando.
No puede utilizar el smbolo o identificador de operador para incluir un valor devuelto. Debe utilizar
la instruccin Return y debe especificar un valor. Puede aparecer cualquier nmero de
instrucciones Return en cualquier lugar de un procedimiento.
La definicin de un operador de esta manera se denomina sobrecarga de operadores,
independientemente de si utiliza la palabra clave Overloads. En la siguiente tabla se muestran los
operadores que se pueden definir.
Tipo Operadores
Unario +, -, IsFalse, IsTrue, Not
Binary +, -, *, /, \, &, ^, >>, <<, =, <>, >, >=, <, <=, And, Like, Mod, Or, Xor
Conversin (unario) CType
Observe que el operador = en la lista binaria es el operador de comparacin, no el operador de
asignacin.
Cuando define CType, debe especificar Widening o Narrowing.
Pares correspondientes
Debe definir ciertos operadores como pares correspondientes. Si define un operador de este tipo,
tambin debe definir el otro. Los pares correspondientes son los siguientes:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

= y <>
> y <
>= y <=
IsTrue y IsFalse
Restricciones de tipos de datos
Cada operador que define debe implicar la clase o estructura donde lo define. Esto significa que la
clase o estructura debe aparecer como tipo de datos de los elementos siguientes:
El operando de un operador unario.
Al menos uno de los operandos de un operador binario.
El operando o el tipo de valor devuelto de un operador de conversin.
Ciertos operadores tienen restricciones adicionales de tipo de datos, como las siguientes:
Si define los operadores IsTrue y IsFalse, ambos deben devolver el tipo Boolean.
Si define los operadores << y >>, ambos deben especificar el
tipo Integer en operandtype y operand2.
El tipo de valor devuelto no tiene que corresponder con el tipo de un operando. Por ejemplo, un
operador de comparacin como = o <> puede devolver un valor de tipo Boolean aunque ninguno
de los operandos sea de tipo Boolean.
Operadores lgicos y bit a bit
Los operadores And, Or, Not y Xor pueden realizar operaciones bit a bit o lgicas en Visual Basic.
Sin embargo, si define uno de estos operadores en una clase o estructura, slo puede definir su
operacin bit a bit.
No puede definir directamente el operador AndAlso con una instruccin Operator. Sin embargo,
puede utilizar AndAlso si ha cumplido las condiciones siguientes:
Ha definido And en los mismos tipos de operando que desea utilizar para AndAlso.
Su definicin de And devuelve el mismo tipo que la clase o estructura donde lo ha definido.
Ha definido el operador IsFalse en la clase o estructura donde ha definido And.
De la misma forma, puede utilizar OrElse si ha definido Or en los mismos operandos, con el tipo de
valor devuelto de la clase o estructura, y ha definido IsTrue en la clase o estructura.
Conversiones de ampliacin y de restriccin
Una conversin de ampliacin siempre es correcta en tiempo de ejecucin, mientras que
una conversin de restriccin puede generar un error en tiempo de ejecucin. Para obtener ms
informacin, vea Conversiones de ampliacin y de restriccin.
Si declara un procedimiento de conversin de tipo Widening, su cdigo de procedimiento no debe
generar ningn error. Esto significa lo siguiente:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Siempre debe devolver un valor vlido de tipo type.
Debe controlar todas las excepciones posibles y otras condiciones de error.
Debe controlar cualquier retorno del error de cualquier procedimiento al que llama.
Si existe alguna posibilidad de que un procedimiento de conversin genere un error o una
excepcin no controlada, debe declararlo de tipo Narrowing.
Ejemplo
En el ejemplo de cdigo siguiente se utiliza la instruccin Operator para definir el esquema de una
estructura que incluye procedimientos de operador para los
operadores And, Or, IsFalsee IsTrue. And y Or utilizan dos operandos de tipo abc y devuelven un
valor de tipo abc. IsFalse e IsTrue utilizan un nico operando de tipo abc y devuelven un valor de
tipo Boolean. Estas definiciones permiten al cdigo de llamada
utilizar And, AndAlso, Or y OrElse con operandos de tipo abc.
Public Structure abc
Dim d As Date
Public Shared Operator And(ByVal x As abc, ByVal y As abc) As abc
Dim r As New abc
' Insert code to calculate And of x and y.
Return r
End Operator
Public Shared Operator Or(ByVal x As abc, ByVal y As abc) As abc
Dim r As New abc
' Insert code to calculate Or of x and y.
Return r
End Operator
Public Shared Operator IsFalse(ByVal z As abc) As Boolean
Dim b As Boolean
' Insert code to calculate IsFalse of z.
Return b
End Operator
Public Shared Operator IsTrue(ByVal z As abc) As Boolean
Dim b As Boolean
' Insert code to calculate IsTrue of z.
Return b
End Operator
End Structure
..
Option (Visual Basic)
Presenta una instruccin que especifica una opcin del compilador que se aplica al archivo de
cdigo fuente completo.


Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
Las opciones del compilador pueden controlar si deben declararse de forma explcita todas las
variables, si las conversiones de ampliacin de tipos deben ser explcitas o si las cadenas deben
compararse como texto o como cantidades binarias.
La palabra clave Option se puede utilizar en estos contextos:
Option Compare (Instruccin)
Instruccin Option Explicit (Visual Basic)
Option Strict (Instruccin)

Optional (Visual Basic)
Especifique que se puede omitir un argumento de procedimiento cuando se llama al procedimiento.
Descripcin
El modificador Optional se puede utilizar en estos contextos:
Declare (Instruccin)
Function (Instruccin)
Property (Instruccin)
Sub (Instruccin)

Or (Operador, Visual Basic)
Realiza una disyuncin lgica entre dos expresiones de tipo Boolean o bien una disyuncin bit a
bit entre dos expresiones numricas.
result = expression1 Or expression2

Partes

result
Obligatorio. Cualquier expresin numrica o de tipo Boolean. Para la
comparacin Boolean, result es la disyuncin lgica inclusiva de dos valores Boolean.
Para las operaciones bit a bit, result es un valor numrico que representa la disyuncin bit
a bit inclusiva de dos modelos de bits numricos.
expression1
Obligatorio. Cualquier expresin numrica o de tipo Boolean.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

expression2
Obligatorio. Cualquier expresin numrica o de tipo Boolean.
Descripcin
Para la comparacin Boolean, result es False si y slo si expression1 y expression2 se evalan
como False. La tabla siguiente ilustra cmo se determina el argumento result.
Si expression1 es: Y expression2 es El valor de result es
True True True
True False True
False True True
False False False
Para operaciones bit a bit, el operador Or realiza una comparacin bit a bit de los bits ubicados de
manera idntica en dos expresiones numricas y establece el bit correspondiente enresult de
acuerdo con la siguiente tabla.
Si el bit de expression1 es... Y el bit de expression2 es... El bit de result es...
1 1 1
1 0 1
0 1 1
0 0 0
Tipos de datos
Si los operandos constan de una expresin Boolean y una expresin numrica, Visual Basic
convierte la expresin Boolean a un valor numrico (1 para True y 0 para False), y realiza una
operacin bit a bit.
Para una comparacin Boolean, el tipo de datos del resultado es Boolean. Para una comparacin
bit a bit, el tipo de datos del resultado es un tipo numrico adecuado para los tipos de datos
de expression1 y expression2. Vea la tabla "Comparaciones relacionales y bit a bit" en Tipos de
datos de resultados de operador.
Sobrecarga
El operador Or se puede sobrecargar, lo que significa que una clase o una estructura pueden
definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Si el cdigo utiliza este operador en una clase o estructura de este tipo, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.


Ejemplo
En el ejemplo siguiente se usa el operador Or para realizar una disyuncin lgica inclusiva entre
dos expresiones. El resultado ser un valor de tipo Boolean que indicar si alguna de las dos
expresiones es True.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Or b > c
secondCheck = b > a Or b > c
thirdCheck = b > a Or c > b

El ejemplo anterior genera unos resultados de True, True y False, respectivamente.
En el ejemplo siguiente se usa el operador Or para realizar una disyuncin lgica inclusiva entre
cada uno de los bits de dos expresiones numricas. El bit en el modelo resultante se establece si
uno de los bits correspondientes de los operandos se ha establecido en 1.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Or b)
secondPattern = (a Or c)
thirdPattern = (b Or c)
El ejemplo anterior genera unos resultados de 10, 14 y 14, respectivamente.

OrElse (Operador)
Realiza una disyuncin lgica inclusiva "cortocircuitada" en dos expresiones.

result = expression1 OrElse expression2

Partes
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

result
Obligatorio. Cualquier expresin de tipo Boolean.
expression1
Obligatorio. Cualquier expresin de tipo Boolean.
expression2
Obligatorio. Cualquier expresin de tipo Boolean.
Descripcin
Se dice que una operacin lgica se encuentra cortocircuitada si el cdigo compilado puede omitir
la evaluacin de una expresin en funcin del resultado de otra. Si el resultado de la primera
expresin evaluada determina el resultado final de la operacin, no es necesario evaluar la
segunda expresin, ya que no cambiar el resultado final. La evaluacin cortocircuitada puede
mejorar el rendimiento si la expresin omitida es compleja o si implica llamadas de procedimiento.
Si una o ambas expresiones se evalan como True, result es True. La tabla siguiente ilustra cmo
se determina el argumento result.
Si expression1 es: Y expression2 es El valor de result es
True (no se evala) True
False True True
False False False
Tipos de datos
El operador OrElse slo se define para Boolean (Tipo de datos, Visual Basic). Visual Basic
convierte cada operando tal como sea necesario en Boolean y realiza toda la operacin
enBoolean. Si asigna el resultado a un tipo numrico, Visual Basic lo convierte de Boolean a ese
tipo. Esto podra generar un comportamiento inesperado. Por ejemplo, 5 OrElse 12 tiene como
resultado 1 cuando se convierte en Integer.
Sobrecarga
Or (Operador, Visual Basic) e IsTrue (Operador) se pueden sobrecargar, lo que significa que una
clase o estructura puede definir de nuevo su comportamiento cuando un operando tiene el tipo de
dicha clase o estructura. La sobrecarga de los operadores Or e IsTrue afecta al comportamiento
del operador OrElse. Si el cdigo utiliza OrElse en una clase o estructura que
sobrecarga Or e IsTrue, asegrese de conocer su comportamiento redefinido. Para obtener ms
informacin, vea Procedimientos de operador.
Ejemplo
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

En el ejemplo siguiente se usa el operador OrElse para realizar una disyuncin lgica entre dos
expresiones. El resultado ser un valor de tipo Boolean que indicar si alguna de las dos
expresiones es verdadera (True). Si la primera expresin es True, la segunda no ser evaluada.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b

El ejemplo anterior genera unos resultados de True, True y False, respectivamente. En el clculo
de firstCheck, no se evala la segunda expresin porque la primera ya es True. Sin embargo, la
segunda expresin se evala en el clculo de secondCheck.
En el ejemplo siguiente se muestra la instruccin If...Then que contiene dos llamadas a
procedimientos. Si la primera llamada devuelve True, no se llama al segundo procedimiento. Esto
puede generar resultados inesperados si el segundo procedimiento realiza tareas importantes que
se deben realizar siempre que se ejecute esta seccin del cdigo.
If testFunction(5) = True OrElse otherFunction(4) = True Then
' If testFunction(5) is True, otherFunction(4) is not called.
' Insert code to be executed.
End If

Overloads
Especifica que una propiedad o procedimiento vuelve a declarar una o varias propiedades o
procedimientos existentes con el mismo nombre.
Descripcin
Sobrecarga es la prctica de proporcionar ms de una definicin para una propiedad o nombre de
procedimiento determinados en el mismo mbito. La nueva declaracin de una propiedad o un
procedimiento con una firma diferente se llama a veces ocultacin por firma.
Reglas
Contexto de la declaracin. Slo puede utilizarse Overloads en una propiedad o
instruccin de declaracin de procedimiento.
Modificadores combinados. No se puede especificar Overloads junto con Shadows en la
misma declaracin de procedimiento.
Diferencias requeridas. La firma en esta declaracin debe ser diferente de la firma de cada
propiedad o procedimiento que sobrecarga. La firma comprende la propiedad o el nombre
de procedimiento junto con lo siguiente:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

el nmero de parmetros
el orden de los parmetros
los tipos de datos de los parmetros
el nmero de parmetros de tipo (para un procedimiento genrico)
el tipo de valor devuelto (slo para un procedimiento de operador de conversin)
Todas las sobrecargas deben tener el mismo nombre pero cada una debe diferir de todas
las dems en una o varias de las consideraciones anteriores. Esto permite al compilador
distinguir qu versin debe utilizar cuando el cdigo llama a la propiedad o al procedimiento.
Diferencias no permitidas. No est permitido cambiar uno o varios de los siguientes
elementos para sobrecargar una propiedad o un procedimiento, porque no forman parte de
la firma:
si devuelve o no un valor (para un procedimiento)
el tipo de datos del valor devuelto (excepto para un operador de conversin)
los nombres de los parmetros o parmetros de tipo
las restricciones de los parmetros de tipo (para un procedimiento genrico)
las palabras clave de modificadores de parmetros (como ByRef o Optional)
las palabras clave de modificadores de propiedades o procedimientos
(como Public o Shared)
Modificador opcional. No es necesario utilizar el modificador Overloads cuando se definen
varias propiedades o procedimientos sobrecargados en la misma clase. Sin embargo, si
utiliza Overloads en una de las declaraciones, debe utilizarlo en todas ellas.
Sombreado y sobrecarga.Overloads tambin se puede utilizar para sombrear un miembro
existente o un conjunto de miembros sobrecargados, en una clase base. Cuando se
utilizaOverloads de esta forma, se declara la propiedad o el mtodo con el mismo nombre y
la misma lista de parmetros que el miembro de clase base, y no se proporciona la palabra
clave Shadows.
El modificador Overloads se puede utilizar en estos contextos:
Function (Instruccin)
Operator (Instruccin)
Property (Instruccin)
Sub (Instruccin)
....
Overridable
Especifica que una propiedad o procedimiento se puede reemplazar por una propiedad o
procedimiento con nombre idntico de una clase derivada.
Descripcin
Overridable es el valor predeterminado de un procedimiento o propiedad que reemplaza a un
procedimiento o propiedad de clase base.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El sombreado y el reemplazo definen de nuevo un elemento heredado, pero hay diferencias
significativas entre los dos enfoques. Para obtener ms informacin, vea Sombrear en Visual
Basic.
Un elemento que se puede reemplazar se denomina en ocasiones elemento virtual. Si se puede
reemplazar, pero no tiene que reemplazarse, en ocasiones tambin se denomina
elementoconcreto.
Reglas
Contexto de la declaracin. Slo puede utilizarse Overridable en una propiedad o
instruccin de declaracin de procedimiento.
Modificadores combinados. No se puede especificar Overridable junto
con MustOverride, NotOverridable o Shared en la misma declaracin. Dado que un
elemento de reemplazo es implcitamente reemplazable, no puede
combinar Overridable con Overrides.
El modificador Overridable se puede utilizar en estos contextos:
Instruccin Function (Visual Basic)
Property (Instruccin)
Instruccin Sub (Visual Basic)

Overrides
Establece que una propiedad o procedimiento reemplaza una propiedad o un procedimiento
especficos heredados de una clase base.
Descripcin
Reglas
Contexto de declaracin. Slo pude utilizarse Overrides en una instruccin de declaracin
de procedimiento o propiedad.
Modificadores combinados. No se puede especificar Overrides junto
con Shadows o Shared en la misma declaracin. Dado que un elemento de reemplazo es
reemplazable de forma implcita, no se puede combinar Overridable con Overrides.
Coincidencia de firmas. La firma de esta declaracin debe coincidir exactamente con
la firma de la propiedad o procedimiento que reemplaza. Esto significa que las listas de
parmetros deben tener el mismo nmero de parmetros, en el mismo orden, con los
mismos tipos de datos.
Adems de la firma, la declaracin de reemplazo tambin debe coincidir exactamente con
los siguientes elementos:
El nivel de acceso
El tipo de valor devuelto, si lo hubiese
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Firmas genricas. En un procedimiento genrico, la firma incluye el nmero de parmetros
de tipo. Por tanto, la declaracin de reemplazo debe coincidir tambin en esto con la versin
de la clase base.
Coincidencia adicional. Adems de coincidir con la firma de la versin de la clase base,
esta declaracin debe coincidir tambin en lo siguiente:
Modificador de nivel de acceso (como Public (Visual Basic))
Mecanismo para pasar argumentos de cada parmetro (ByVal o ByRef)
Listas de restricciones de cada parmetro de tipo de un procedimiento genrico
Sombreado y reemplazo. El sombreado y el reemplazo definen de nuevo un elemento
heredado, pero existen diferencias significativas entre los dos enfoques. Para obtener ms
informacin, vea Sombrear en Visual Basic.
El modificador Overrides se puede utilizar en estos contextos:
Function (Instruccin)
Property (Instruccin)
Sub (Instruccin)


ParamArray
Especifica que el parmetro de un procedimiento toma una matriz opcional de elementos del tipo
especificado. ParamArray slo se puede utilizar como el ltimo parmetro de una lista de
parmetros.
Descripcin
ParamArray permite pasar al procedimiento un nmero arbitrario de argumentos. Un
parmetro ParamArray siempre se declara mediante ByVal.
Puede proporcionar uno o ms argumentos en un parmetro ParamArray pasando una matriz del
tipo de datos adecuado, una lista de valores separados por comas o nada en absoluto. Para
obtener ms detalles, vea "Llamar a un lista de parmetros" en Matrices de parmetros.
Nota de seguridad
Si se trabaja con matrices cuyo tamao es excesivamente grande, existe el riesgo de sobrecargar alguna
capacidad interna de la aplicacin. Si acepta una matriz de parmetro del cdigo de llamada, debe comprobar
su longitud y llevar a cabo los pasos necesarios si es demasiado grande para la aplicacin.
El modificador ParamArray se puede utilizar en estos contextos:
Declare (Instruccin)
Instruccin Function (Visual Basic)
Property (Instruccin)
Instruccin Sub (Visual Basic)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Partial (Visual Basic)
Indica que la declaracin de una clase o una estructura es una definicin parcial de dicha clase o
estructura.
[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _
Partial { Class | Structure } name [ (Of typelist) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ variabledeclarations ]
[ proceduredeclarations ]
{ End Class | End Structure }

Partes

attrlist
Opcional. Lista de atributos que se aplica a esta clase o estructura. Debe incluir la Lista de
atributos entre corchetes angulares (< >).
accessmodifier
Opcional. Especifica qu cdigo puede tener acceso a esta clase o estructura. Vea Niveles
de acceso en Visual Basic.
Shadows
Opcional. Vea Shadows.
MustInherit
Opcional. Vea MustInherit.
NotInheritable
Opcional. Vea NotInheritable.
name
Obligatoria. Nombre de esta clase o estructura. Debe coincidir con el nombre definido en
todas las dems declaraciones parciales de la misma clase o estructura.
Of
Opcional. Especifica que se trata de una estructura o clase genrica. Vea Tipos genricos
en Visual Basic.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

typelist
Es obligatoria si se utiliza Of. Vea Lista de tipos.
Inherits
Opcional. Vea Inherits (Instruccin).
classname
Es obligatoria si se utiliza Inherits. Nombre de la clase o interfaz de la que se deriva esta
clase.
Implements
Opcional. Vea Implements (Instruccin).
interfacenames
Es obligatoria si se utiliza Implements. Nombres de las interfaces implementadas por esta
clase o estructura.
variabledeclarations
Opcional. Instrucciones que declaran eventos y variables adicionales para la clase o
estructura.
proceduredeclarations
Opcional. Instrucciones que declaran y definen procedimientos adicionales para la clase o
estructura.
End Class o End Structure
Finaliza esta definicin parcial de Class o Structure.
Descripcin
Puede dividir la definicin de una clase o estructura en varias declaraciones con la palabra
clave Partial. Puede utilizar tantas declaraciones parciales como desee en tantos archivos de
cdigo fuente diferentes como sea necesario. Sin embargo, todas las declaraciones deben estar en
el mismo ensamblado y el mismo espacio de nombres.
Nota
Visual Basic utiliza definiciones de clase parciales para separar el cdigo generado del cdigo creado por el
usuario en archivos de cdigo fuente distintos. Por ejemplo, el Diseador de Windows Forms define clases
parciales para los controles, como Form. No debera modificar el cdigo generado de estos controles.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

En circunstancias normales, no debera dividir el desarrollo de una nica clase o estructura en dos
o ms declaraciones. Por tanto, en la mayora de los casos no necesitar la palabra clavePartial.
Todas las reglas de creacin de clases y estructuras, como por ejemplo las reglas de herencia y
utilizacin de modificadores, se aplican cuando se crea una clase o una estructura parcial.
Procedimientos recomendados
Utilizacin de palabras clave. Por motivos de legibilidad, cada declaracin parcial de una
clase o estructura debera incluir la palabra clave Partial. El compilador nicamente permite
que se omita la palabra clave en una sola declaracin parcial; si se omite en dos o ms
declaraciones parciales, el compilador indicar un error.
Comportamiento
Unin de declaraciones. El compilador trata la clase o estructura como la unin de todas
sus declaraciones parciales. Todos los modificadores de cada definicin parcial se aplican a
toda la clase o estructura, y todos los miembros de cada definicin parcial estn disponibles
en toda la clase o estructura.
La promocin de tipos no est permitida para tipos parciales en mdulos. Si una
definicin parcial est dentro de un mdulo, la promocin de tipos de esa clase o estructura
se rechaza automticamente. En este caso, un conjunto de definiciones parciales puede
producir resultados inesperados e incluso errores del compilador. Para obtener ms
informacin, vea Promocin de tipos.
El compilador slo combina las definiciones parciales cuando sus rutas vlidas son
idnticas.
La palabra clave Partial se puede utilizar en estos contextos:
Class (Instruccin)
Structure (Instruccin)
Ejemplo
En el ejemplo siguiente se divide la definicin de la clase sampleClass en dos declaraciones, cada
una de las cuales define un procedimiento Sub diferente.
Partial Public Class sampleClass
Public Sub sub1()
End Sub
End Class
Partial Public Class sampleClass
Public Sub sub2()
End Sub
End Class

Las dos definiciones parciales del ejemplo anterior podran estar en el mismo archivo de cdigo
fuente o en dos archivos de cdigo fuente diferentes.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Private (Visual Basic)
Especifica que slo se puede tener acceso a uno o varios elementos de programacin declarados
desde el contexto de la declaracin, incluidos todos los tipos que contiene.
Descripcin
Si un elemento de programacin representa la funcionalidad de propiedad o contiene datos
confidenciales, por lo general desear limitar el acceso a este elemento con toda la rigurosidad que
sea posible. Para alcanzar la limitacin mxima, permita nicamente que el mdulo, la clase o la
estructura que define el elemento tenga acceso a este elemento. Para limitar el acceso a un
elemento de este modo, puede declararlo con Private.
Reglas
Contexto de declaracin. Slo puede utilizar Private en el nivel de mdulo. Esto significa
que el contexto de la declaracin de un elemento Private debe ser un mdulo, una clase o
una estructura, y no un archivo de cdigo fuente, un espacio de nombres, una interfaz o un
procedimiento.
Comportamiento
Nivel de acceso. Todo el cdigo de un contexto de declaracin puede tener acceso a sus
elementos Private. Esto incluye el cdigo del tipo contenido, por ejemplo una clase anidada
o una expresin de asignacin de una enumeracin. Ningn cdigo fuera del contexto de
declaracin puede tener acceso a sus elementos Private.
Modificadores de acceso. Las palabras clave que especifican el nivel de acceso se
denominan modificadores de acceso. Encontrar una comparacin de los modificadores de
acceso en Niveles de acceso en Visual Basic.
El modificador Private se puede utilizar en estos contextos:
Class (Instruccin)
Const (Instruccin)
Declare (Instruccin)
Delegate (Instruccin)
Dim (Instruccin)
Enum (Instruccin)
Event (Instruccin)
Function (Instruccin)
Interface (Instruccin)
Property (Instruccin)
Structure (Instruccin)
Sub (Instruccin)

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Property (Instruccin)
Declara el nombre de una propiedad y los procedimientos de propiedades que se utilizan para
almacenar y recuperar el valor de la propiedad.
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslis
t ]
[ <attributelist> ] [ accessmodifier ] Get
[ statements ]
End Get
[ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, pa
rameterlist ] )
[ statements ]
End Set
End Property

Partes

attributelist
Opcional. Lista de atributos aplicables a esta propiedad o procedimiento Get o Set.
Vea Lista de atributos.
Default
Opcional. Especifica que esta propiedad es la propiedad predeterminada para la clase o
estructura en que est definida. Las propiedades predeterminadas deben aceptar
parmetros y se pueden establecer y recuperar sin especificar el nombre de la propiedad.
Si declara la propiedad como Default, no puede utilizar Private en la propiedad ni en
ninguno de sus procedimientos de propiedad.
accessmodifier
Opcional en la instruccin Property y en a lo sumo una de las instrucciones Get y Set.
Puede ser una de las siguientes:
Public
Protected
Friend
Private
Protected Friend
Vea Niveles de acceso en Visual Basic.
propertymodifiers
Opcional. Puede ser una de las siguientes:
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Overloads
Overrides
Overridable
NotOverridable
MustOverride
MustOverride Overrides
NotOverridable Overrides
Shared
Opcional. Vea Shared (Visual Basic).
Shadows
Opcional. Vea Shadows.
ReadOnly
Opcional. Vea ReadOnly (Visual Basic).
WriteOnly
Opcional. Vea WriteOnly.
name
Obligatorio. Nombre de la propiedad. Vea Nombres de elementos declarados.
parameterlist
Opcional. Lista de nombres de variable local que representan los parmetros de esta
propiedad y posibles parmetros adicionales del procedimiento Set. Vea Lista de
parmetros.
returntype
Obligatorio si OptionStrict es On. Tipos de datos del valor devuelto por esta propiedad.
Implements
Opcional. Indica que esta propiedad implementa una o ms propiedades, cada una de ellas
definida en una interfaz implementada por la clase o estructura contenedora de esta
propiedad. Vea Implements (Instruccin).
implementslist
Requerido si se suministra Implements. Lista de las propiedades que se implementan.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

implementedproperty [ , implementedproperty ... ]
Cada implementedproperty tiene la sintaxis y las partes siguientes:
interface.definedname
Parte Descripcin
interface Obligatorio. Nombre de una interfaz implementada por la clase o estructura
contenedora de esta propiedad.
definedname Obligatorio. Nombre por el que se define la propiedad en interface.
Get
Obligatorio a menos que la propiedad est marcada como WriteOnly. Inicia un
procedimiento de propiedad Get que se utiliza para devolver el valor de la propiedad.
statements
Opcional. Bloque de las instrucciones que se deben ejecutar dentro del
procedimiento Get o Set.
End Get
Termina el procedimiento de propiedad Get.
Set
Obligatorio a menos que la propiedad est marcada como ReadOnly. Inicia un
procedimiento de propiedad Set que se utiliza para almacenar el valor de la propiedad.
End Set
Termina el procedimiento de propiedad Set.
End Property
Termina la definicin de esta propiedad.
Descripcin
La instruccin Property introduce la declaracin de una propiedad. Una propiedad puede tener un
procedimiento Get (slo lectura), un procedimiento Set (slo escritura), o ambos (de lectura y
escritura).
Slo puede utilizar Property en el nivel de mdulo. Esto significa que el contexto de declaracin de
una propiedad debe ser una clase, estructura, mdulo o interfaz, y no un archivo de cdigo fuente,
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

un espacio de nombres, un procedimiento ni un bloque. Para obtener ms informacin,
vea Contextos de declaracin y niveles de acceso predeterminados.
Las propiedades tienen como valor predeterminado el acceso pblico. Puede ajustar el nivel de
acceso de una propiedad mediante un modificador de acceso de la instruccin Property y,
opcionalmente, ajustar uno de sus procedimientos de propiedad en un nivel de acceso ms
restrictivo.
Visual Basic pasa un parmetro al bloque Set durante las asignaciones de propiedades. Si no se
especifica un parmetro para Set, el entorno de desarrollo integrado (IDE) utiliza un parmetro
implcito denominado value. Este parmetro contiene el valor que se va a asignar a la propiedad.
Normalmente, este valor se almacena en una variable local privada y lo devuelve cada vez que se
llama al procedimiento Get.
Reglas
Niveles de acceso mixto. Si est definiendo una propiedad de lectura y escritura, tiene la
opcin de especificar un nivel de acceso distinto para el procedimiento Get o para el
procedimiento Set, pero no para ambos. Si as lo hace, el nivel de acceso del procedimiento
debe ser ms restrictivo que el nivel de acceso de la propiedad. Por ejemplo, si la propiedad
se declara como Friend, puede declarar el procedimiento Set como Private, pero no
como Public.
Si est definiendo una propiedad ReadOnly o WriteOnly, el procedimiento de propiedad
nico (Get o Set, respectivamente) representa toda la propiedad. No puede declarar un nivel
de acceso diferente para este tipo de procedimiento, porque se estableceran dos niveles de
acceso para la propiedad.
Tipo de valor devuelto. La instruccin Property puede declarar el tipo de datos del valor
que devuelve. Puede especificar cualquier tipo de datos o el nombre de una enumeracin,
estructura, clase o interfaz.
Si no especifica returntype, la propiedad devuelve Object.
Implementacin. Si esta propiedad utiliza la palabra clave Implements, la clase o
estructura contenedora deben tener una instruccin Implements que sigue inmediatamente
a su instruccin Class o Structure. La instruccin Implements debe incluir cada interfaz
especificada en implementslist. Sin embargo, el nombre con el que una interfaz define
la Property(en definedname) no tiene por qu ser el mismo que el nombre de esta
propiedad (en name).
Comportamiento
Volver de un procedimiento de propiedad. Cuando el procedimiento Get o Set vuelve al
cdigo que realiza la llamada, la ejecucin contina con la instruccin siguiente a la
instruccin que la llam.
Las instrucciones Exit Property y Return provocan una salida inmediata de un
procedimiento de propiedad. Puede aparecer cualquier cantidad de instrucciones Exit
Property yReturn en cualquier parte del procedimiento, y se puede combinar
instrucciones Exit Property y Return.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Valor devuelto. Para devolver un valor desde un procedimiento Get, puede asignar el valor
al nombre de propiedad o incluirlo en una instruccin Return. El ejemplo siguiente asigna el
valor devuelto al nombre de propiedad quoteForTheDay y, a continuacin, utiliza la
instruccin Exit Property para volver.
Private quoteValue As String = "No quote assigned yet."

ReadOnly Property quoteForTheDay() As String
Get
quoteForTheDay = quoteValue
Exit Property
End Get
End Property

Si utiliza Exit Property sin asignar un valor a name, el procedimiento Get devuelve el valor
predeterminado para el tipo de datos de la propiedad.
La instruccin Return asigna simultneamente el valor devuelto por el procedimiento Get y
sale del procedimiento. Esto se muestra en el siguiente ejemplo.
Private quoteValue As String = "No quote assigned yet."

ReadOnly Property quoteForTheDay() As String
Get
Return quoteValue
End Get
End Property

Ejemplo
El siguiente ejemplo declara una propiedad en una clase.
Class Class1
' Define a local variable to store the property value.
Private propertyValue As String
' Define the property.
Public Property prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return propertyValue
End Get
Set(ByVal value As String)
' The Set property procedure is called when the value
' of a property is modified. The value to be assigned
' is passed in the argument to Set.
propertyValue = value
End Set
End Property
End Class
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Protected (Visual Basic)
Especifica que slo se puede obtener acceso a uno o varios elementos de programacin
declarados desde su propia clase o desde una clase derivada.
Descripcin
A veces un elemento de programacin declarado en una clase contiene datos confidenciales o
cdigo restringido, por lo que conviene limitar el acceso a dicho elemento. Sin embargo, si la clase
se puede heredar y se prev una jerarqua de clases derivadas, quizs sea necesario que estas
clases derivadas tengan acceso a los datos y al cdigo. En este caso, desear que se pueda tener
acceso al elemento desde la clase base y desde todas las clases derivadas. Para limitar el acceso
a un elemento de este modo, puede declararlo con Protected.
Reglas
Contexto de la declaracin. Slo puede utilizar Protected en el nivel de clase. Esto
significa que el contexto de la declaracin de un elemento Protected debe ser una clase, y
no un archivo de cdigo fuente, un espacio de nombres, una interfaz, un mdulo, una
estructura ni un procedimiento.
Modificadores combinados. Puede utilizar el modificador Protected junto con el
modificador Friend (Visual Basic) en la misma declaracin. Esta combinacin hace que se
pueda obtener acceso a los elementos declarados desde cualquier punto del mismo
ensamblado, desde su propia clase y desde las clases derivadas. Slo puede
especificar Protected Friend en miembros de clases.
Comportamiento
Nivel de acceso. Todo el cdigo de una clase puede obtener acceso a sus elementos. El
cdigo de cualquier clase que se derive de una clase base puede tener acceso a todos los
elementos Protected de la clase base. Esto se aplica en todos los niveles de derivacin, lo
que significa que una clase puede tener acceso a los elementos Protected de la clase base
de la clase base, etc.
El acceso protegido no es un supraconjunto ni un subconjunto del acceso de tipo amigo.
Modificadores de acceso. Las palabras clave que especifican el nivel de acceso se
denominan modificadores de acceso. Encontrar una comparacin de los modificadores de
acceso en Niveles de acceso en Visual Basic.
El modificador Protected se puede utilizar en estos contextos:
Class (Instruccin)
Const (Instruccin)
Declare (Instruccin)
Delegate (Instruccin)
Dim (Instruccin)
Enum (Instruccin)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Event (Instruccin)
Function (Instruccin)
Interface (Instruccin)
Property (Instruccin)
Structure (Instruccin)
Sub (Instruccin)

Public (Visual Basic)
Especifica que uno o varios elementos de programacin declarados no tienen ninguna restriccin
de acceso.
Descripcin
Si publica un componente o conjunto de componentes, como una biblioteca de clases, desear que
los elementos de programacin sean accesibles para todos los cdigos que interactan con su
ensamblado. Para otorgar este acceso ilimitado en un elemento, puede declararlo con Public.
El acceso pblico es el nivel normal para un elemento de programacin cuando no necesita limitar
su acceso. Tenga en cuenta que el nivel de acceso de un elemento declarado dentro de una
interfaz, mdulo, clase o estructura es de forma predeterminada Public si no lo declara de otra
forma.
Reglas
Contexto de la declaracin. Puede utilizar Public solamente en el nivel de mdulo, interfaz
o espacio de nombres. Esto significa que el contexto de la declaracin para un
elementoPublic debe ser un archivo de cdigo fuente, espacio de nombres, interfaz,
mdulo, clase o estructura y no puede ser un procedimiento.
Comportamiento
Nivel de acceso. Todos los cdigos que pueden tener acceso a un mdulo, clase o
estructura pueden tener acceso a sus elementos Public.
Acceso predeterminado. Las variables locales dentro de un procedimiento tienen un valor
predeterminado de acceso pblico y no puede utilizar ningn modificador de acceso en
ellos.
Modificadores de acceso. Las palabras clave que especifican el nivel de acceso se
llaman modificadores de acceso. Para consultar una comparacin de los modificadores de
acceso, vea Niveles de acceso en Visual Basic.
El modificador Public se puede utilizar en estos contextos:
Class (Instruccin)
Const (Instruccin)
Declare (Instruccin)
Delegate (Instruccin)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Dim (Instruccin)
Enum (Instruccin)
Event (Instruccin)
Function (Instruccin)
Interface (Instruccin)
Module (Instruccin)
Operator (Instruccin)
Property (Instruccin)
Structure (Instruccin)
Sub (Instruccin)

RaiseEvent (Instruccin)
Desencadena un evento declarado en el nivel de mdulo dentro de una clase, formulario o
documento.
RaiseEvent eventname[( argumentlist )]

Partes

eventname
Obligatorio. Nombre del evento que se va a desencadenar.
argumentlist
Opcional. Lista de variables, matrices o expresiones delimitadas por comas. El
argumento argumentlist debe estar entre parntesis. Si no hay argumentos, deben omitirse
los parntesis.
Descripcin
El parmetro eventname requerido es el nombre de un evento declarado en el mdulo. Sigue las
convenciones de nomenclatura de Visual Basic.
Si el evento no se ha declarado dentro del mdulo en el que se produce, ocurrir un error. El
siguiente fragmento de cdigo muestra una declaracin de evento y un procedimiento en el que se
produce el evento.
' Declare an event at module level.
Event LogonCompleted(ByVal UserName As String)

Sub Logon(ByVal UserName As String)
' Raise the event.
RaiseEvent LogonCompleted(UserName)
End Sub
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

No se puede utilizar RaiseEvent para generar eventos que no estn explcitamente declarados en
el mdulo. Por ejemplo, todos los formularios heredan un
evento Click deSystem.Windows.Forms.Form; no se puede producir utilizando RaiseEvent en un
formulario derivado. Si se declara un evento Click en el mdulo de formulario, sombrea el propio
eventoClick del formulario. Sin embargo, todava se puede invocar el evento Click del formulario
llamando al mtodo OnClick.
De manera predeterminada, un evento definido en Visual Basic provoca sus controladores de
eventos en el orden en que se establecen las conexiones. Como los eventos pueden tener
parmetros ByRef, un proceso que se conecta tarde puede recibir parmetros modificados por un
controlador de eventos anterior. Despus de que se ejecutan los controladores de eventos, el
control se devuelve a la subrutina que provoc el evento.
Nota
Los eventos no compartidos no se deben provocar dentro del constructor de la clase en la que estn
declarados. Aunque dichos eventos no provocan errores en tiempo de ejecucin, es posible que los
controladores de eventos asociados no los puedan capturar. Se debe utilizar el modificador Shared para crear
un evento compartido si es necesario provocar un evento a partir de un constructor.
El comportamiento predeterminado de eventos se puede cambiar definiendo un evento
personalizado. En los eventos personalizados, la instruccin RaiseEvent invoca al descriptor de
acceso RaiseEvent del evento. Para obtener ms informacin sobre eventos personalizados,
vea Event (Instruccin).
Ejemplo
En el ejemplo siguiente se utilizan eventos para contar de 10 a 0 segundos. El cdigo muestra
varios mtodos, propiedades e instrucciones relacionados con eventos, incluida la
instruccinRaiseEvent.
La clase que produce un evento es el origen de evento, y los mtodos que procesan el evento son
los controladores de eventos. Un origen de evento puede tener mltiples controladores para los
eventos que genera. Cuando una clase produce el evento, ese evento se genera en cada clase
que ha elegido para controlar eventos para esa instancia del objeto.
En el ejemplo tambin se utiliza un formulario (Form1) con un botn (Button1) y un cuadro de texto
(TextBox1). Al hacer clic en el botn, el primer cuadro de texto presenta una cuenta atrs de 10 a 0
segundos. Cuando ha transcurrido todo el tiempo (10 segundos), el primer cuadro de texto
presenta "Done".
El cdigo para Form1 especifica los estados inicial y terminal del formulario. Tambin contiene el
cdigo que se ejecuta cuando se producen eventos.
Para utilizar este ejemplo, abra un nuevo proyecto de aplicacin para Windows, agregue un botn
denominado Button1 y un cuadro de texto denominado TextBox1 al formulario principal,
denominado Form1. A continuacin, haga clic con el botn secundario del mouse (ratn) en el
formulario y haga clic en Ver cdigo para abrir el editor de cdigo.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Agregue una variable WithEvents a la seccin de declaraciones de la clase Form1.
Private WithEvents mText As TimerState
Agregue el cdigo siguiente al cdigo de Form1. Sustituya los procedimientos que estn
duplicados, como Form_Load o Button_Click.
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Button1.Text = "Start"
mText = New TimerState
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.Click
mText.StartCountdown(10.0, 0.1)
End Sub

Private Sub mText_ChangeText() Handles mText.Finished
TextBox1.Text = "Done"
End Sub

Private Sub mText_UpdateTime(ByVal Countdown As Double) _
Handles mText.UpdateTime
TextBox1.Text = Format(Countdown, "##0.0")
' Use DoEvents to allow the display to refresh.
My.Application.DoEvents()
End Sub

Class TimerState
Public Event UpdateTime(ByVal Countdown As Double)
Public Event Finished()
Public Sub StartCountdown(ByVal Duration As Double, _
ByVal Increment As Double)
Dim Start As Double = DateAndTime.Timer
Dim ElapsedTime As Double = 0

Dim SoFar As Double = 0
Do While ElapsedTime < Duration
If ElapsedTime > SoFar + Increment Then
SoFar += Increment
RaiseEvent UpdateTime(Duration - SoFar)
End If
ElapsedTime = DateAndTime.Timer - Start
Loop
RaiseEvent Finished()
End Sub
End Class

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Presione F5 para ejecutar el ejemplo anterior y haga clic en el botn que tiene la etiqueta Iniciar.
El primer cuadro de texto empieza la cuenta atrs. Cuando ha transcurrido todo el tiempo (10
segundos), el primer cuadro de texto presenta "Done".
Nota
El mtodo My.Application.DoEvents no procesa los eventos exactamente de la misma manera en que lo
hace el formulario. Para permitir que el formulario controle directamente los eventos, puede utilizar el
subprocesamiento mltiple. Para obtener ms informacin, vea Subprocesamiento mltiple en Visual Basic.

ReadOnly (Visual Basic)
Especifica que una variable o una propiedad se puede leer, pero no se puede modificar.
Descripcin
Reglas
Contexto de declaracin. Slo puede utilizar ReadOnly en el nivel de mdulo. Esto
significa que el contexto de declaracin de un elemento ReadOnly debe ser una clase, una
estructura o un mdulo, y no un archivo de cdigo fuente, un espacio de nombres o un
procedimiento.
Modificadores combinados. No se puede especificar ReadOnly junto con Static en la
misma declaracin.
Asignar un valor. El cdigo que utiliza una propiedad ReadOnly no puede establecer su
valor. Pero el cdigo que tiene acceso al almacenamiento subyacente puede asignar o
modificar el valor en cualquier momento.
Slo puede asignar un valor a una variable ReadOnly en su declaracin o en el constructor
de una clase o estructura en la que est definida.
Cundo utilizar una variable de slo lectura
Hay situaciones en las que no puede utilizar Instruccin Const (Visual Basic) para declarar y
asignar un valor constante. Por ejemplo, podra ocurrir que la instruccin Const no aceptara el tipo
de datos que desea asignar o que no pueda calcular el valor en tiempo de compilacin con una
expresin constante. Es posible incluso que no conozca el valor en tiempo de compilacin. En
estos casos, puede utilizar una variable ReadOnly para albergar un valor constante.
Nota de seguridad
Si el tipo de datos de la variable es un tipo de referencia, como una matriz o una instancia de clase, sus
miembros se pueden modificar aunque la propia variable sea ReadOnly. Esto se ilustra en el siguiente
ejemplo:
ReadOnly characterArray() As Char = {"x"c, "y"c, "z"c}
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Sub changeArrayElement()
characterArray(1) = "M"c
End Sub
Cuando se inicializa, la matriz sealada por characterArray() alberga "x", "y" y "z". Como la
variable characterArray es ReadOnly, no es posible modificar su valor una vez que se ha
inicializado; es decir, no se le puede asignar una nueva matriz. Sin embargo, puede cambiar los
valores de uno o varios miembros de la matriz. Despus de que se produzca una llamada al
procedimiento changeArrayElement, la matriz sealada por characterArray() alberga "x", "M" y "z".
Observe que esta operacin es equivalente a declarar un parmetro de procedimiento que
sea ByVal, lo que impide que el procedimiento pueda modificar el argumento de llamada, aunque
puede modificar sus miembros.
Ejemplo
En el ejemplo siguiente se define una propiedad ReadOnly para la fecha en la que se contrat a
un empleado. La clase almacena el valor de la propiedad internamente como una variablePrivate y
nicamente el cdigo incluido en la clase puede cambiar ese valor. Sin embargo, la propiedad
es Public y cualquier cdigo que pueda tener acceso a la clase podr leer la propiedad.
Class employee
' Only code inside class employee can change the value of hireDateValue.
Private hireDateValue As Date
' Any code that can access class employee can read property dateHired.
Public ReadOnly Property dateHired() As Date
Get
Return hireDateValue
End Get
End Property
End Class

El modificador ReadOnly se puede utilizar en estos contextos:
Dim (Instruccin)
Property (Instruccin)

Instruccin ReDim (Visual Basic)
Vuelve a asignar espacio de almacenamiento a una variable de matriz.
ReDim [ Preserve ] name(boundlist) [ , name(boundlist) [, ... ] ]

Partes

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Preserve
Opcional. Modificador utilizado para conservar los datos en la matriz existente cuando slo
se cambia el tamao de la ltima dimensin.
name
Obligatorio. Nombre de la variable de matriz. Vea Nombres de elementos declarados.
boundlist
Obligatorio. Lista de lmites de cada dimensin de la matriz nuevamente definida.
Descripcin
Puede utilizar la instruccin ReDim para cambiar el tamao de una o ms dimensiones de una
matriz que ya se ha declarado. Si dispone de una matriz grande y ya no necesita algunos de sus
elementos, ReDim puede reducir el tamao de la matriz para liberar memoria. Por otra parte, si el
cdigo determina que una matriz necesita ms elementos, ReDim puede agregarlos.
La instruccin ReDim se ha diseado nicamente para matrices. No es vlida en escalares
(variables que contienen un valor nico), colecciones ni estructuras. Tenga en cuenta que si
declara una variable de tipo Array, la instruccin ReDim no dispone de suficiente informacin de
tipo para crear la nueva matriz.
Slo puede utilizar ReDim en el nivel de clase en el nivel de procedimiento. Esto significa que
el contexto de la declaracin de una variable debe ser un procedimiento, y no un archivo de cdigo
fuente, un espacio de nombres, una interfaz, una clase, una estructura, un mdulo ni un bloque.
Para obtener ms informacin, vea Contextos de declaracin y niveles de acceso
predeterminados.
Reglas
Modificadores. Puede especificar slo el modificador Preserve y no puede omitir la palabra
clave ReDim si lo hace.
Varias variables. Puede cambiar el tamao de varias variables de matriz en la misma
instruccin de declaracin, especificando las partes name y boundlist de cada una. Las
variables mltiples se separan con comas.
Lmites de la matriz. Cada entrada en boundlist puede especificar los lmites inferior y
superior de la dimensin. El lmite inferior siempre es cero, tanto si lo especifica como si no.
El lmite superior es el valor superior posible para ese subndice, no la longitud de la
dimensin (que es el lmite superior ms uno). Cada subndice puede variar de cero a su
valor de lmite superior.
El nmero de dimensiones en boundlist debe coincidir con el rango original de la matriz.
Matrices vacas. Es posible utilizar -1 para declarar el lmite superior de una dimensin de
matriz. Esto significa que la matriz est vaca pero no tiene el valor Nothing (Visual Basic).
Para obtener ms informacin, vea Cmo: Crear una matriz sin elementos. No obstante, el
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

cdigo de Visual Basic no permite un acceso correcto a dicha matriz. Si se intenta el acceso,
se produce un error IndexOutOfRangeException durante la ejecucin.
Tipos de datos. La instruccin ReDim no puede cambiar el tipo de datos de una variable de
matriz ni de sus elementos.
Inicializacin. La instruccin ReDim no puede proporcionar nuevos valores de inicializacin
para los elementos de matriz.
Rango. La instruccin ReDim no puede cambiar el rango (el nmero de dimensiones) de la
matriz.
Cambiar el tamao con Preserve. Si se utiliza Preserve, slo se puede cambiar el tamao
de la ltima dimensin de la matriz y, para el resto de las dimensiones, debe especificar el
mismo lmite que tenga en la matriz existente.
Por ejemplo, si su matriz tiene slo una dimensin, puede cambiar el tamao de dicha
dimensin y conservar el contenido de la matriz, ya que es la ltima dimensin y la nica.
Sin embargo, si su matriz tiene dos o ms dimensiones, slo puede cambiar el tamao de la
ltima dimensin si utiliza Preserve.
Propiedades. Se puede utilizar ReDim en una propiedad que contiene una matriz de
valores.
Comportamiento
Reemplazo de matriz.ReDim libera la matriz existente y crea una matriz nueva con el
mismo rango. La nueva matriz reemplaza la matriz liberada en la variable de matriz.
Inicializacin sin Preserve. Si no especifica Preserve, ReDim inicializa los elementos de la
nueva matriz con e valor predeterminado para su tipo de datos.
Inicializacin con Preserve. Si se especifica el modificador Preserve, Visual Basic copia
los elementos de la matriz existente en la nueva matriz.
Ejemplo
El ejemplo siguiente aumenta el tamao de la ltima dimensin de una matriz dinmica sin perder
los datos existentes en la matriz y, a continuacin, reduce el tamao con una prdida parcial de
datos. Por ltimo, reduce el tamao a su valor original y reinicializa todos los elementos de la
matriz.
Dim intArray(10, 10, 10) As Integer
ReDim Preserve intArray(10, 10, 20)
ReDim Preserve intArray(10, 10, 15)
ReDim intArray(10, 10, 10)

La primera instruccin ReDim crea una nueva matriz que reemplaza la matriz existente en la
variable intArray. ReDim copia todos los elementos de la matriz existente en la nueva matriz.
Tambin agrega 10 columnas ms al final de cada fila en todas las capas e inicializa los elementos
de estas nuevas columnas con 0 (el valor predeterminado de Integer, el tipo de elemento de la
matriz).
El segundo ReDim crea otra nueva matriz, copiando todos los elementos que quepan. Sin
embargo, se pierden cinco columnas desde el final de cada fila en cada capa. Esto no es un
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

problema si ha terminado de utilizar estas columnas. Si se reduce el tamao de una matriz de gran
tamao, puede liberar memoria que ya no necesite.
El tercer ReDim crea otra matriz nueva, quitando otro cinco columnas del final de cada fila en cada
capa. Esta vez no copia ningn elemento existente. As se recupera el tamao original de la matriz
y se devuelven sus elementos al valor predeterminado original.

REM (Instruccin, Visual Basic)
Se utiliza para incluir comentarios explicativos en el cdigo fuente de un programa.
REM comment
' comment

Partes

comment
Opcional. El texto de cualquier comentario que desee incluir. Es necesario incluir un
espacio entre la palabra clave REM o comilla sencilla (') y comment.
Descripcin
Puede colocar una instruccin REM sola en una lnea o puede ponerla en una lnea a continuacin
de otra instruccin. La instruccin REM debe ser la ltima instruccin de la lnea. Si sigue otra
instruccin, la REM debe estar separada de esa instruccin por un espacio.
Puede utilizar una comilla simple (') en vez de REM. Esto es cierto si el comentario sigue a otra
instruccin en la misma lnea o se encuentra sola en una lnea.
Nota
No es posible continuar una instruccin REM mediante la secuencia de continuacin de lnea ( _). Una vez
que se inicia un comentario, el compilador no busca ningn significado especial en los caracteres. Para un
comentario de varias lneas, utilice otra instruccin REM o un smbolo de comentario (') en cada lnea.

Ejemplo
En el ejemplo siguiente se muestra la instruccin REM, que se utilizar para incluir observaciones
explicativas en un programa. Tambin se muestra la alternativa de utilizacin de un carcter de
comilla simple (') en lugar de REM.
Dim demoStr1, demoStr2 As String
demoStr1 = "Hello" REM Comment after a statement using REM.
demoStr2 = "Goodbye" ' Comment after a statement using the ' character.
REM This entire line is a comment.
' This entire line is also a comment.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0




RemoveHandler (Instruccin)
Quita la asociacin entre un evento y un controlador de eventos.
RemoveHandler event, AddressOf eventhandler

Partes

event
Nombre del evento que se va a controlar.
eventhandler
Nombre del procedimiento que controla actualmente el evento.
Descripcin
Las instrucciones AddHandler y RemoveHandler permiten iniciar y detener el control del evento
de un evento especfico en cualquier momento de la ejecucin del programa.
Para los eventos personalizados, la instruccin RemoveHandler llama al descriptor de
acceso RemoveHandler del evento. Para obtener ms informacin sobre eventos personalizados,
veaEvent (Instruccin).
Ejemplo
Sub TestEvents()
Dim Obj As New Class1
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
' Call the method to raise the event.
Obj.CauseSomeEvent()
' Stop handling events.
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
' This event will not be handled.
Obj.CauseSomeEvent()
End Sub

Sub EventHandler()
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub

Public Class Class1
' Declare an event.
Public Event Ev_Event()
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class


Resume
Especifica dnde debe continuar la ejecucin despus de controlar un error.
Descripcin
La palabra clave Resume se puede utilizar en estos contextos:
Instruccin On Error (Visual Basic)
Resume (Instruccin)


Instruccin Return (Visual Basic)
Devuelve el control al cdigo que llam a un procedimiento Function, Sub, Get, Set u Operator.
Return
-or-
Return expression

Parte
expression
Requerido en un procedimiento Function, Get u Operator. Expresin que representa el
valor que se devolver al cdigo de llamada.
Descripcin
En un procedimiento Sub o Set, la instruccin Return es equivalente a Exit Sub o Exit Property, y
no se debe proporcionar un valor expression.
En un procedimiento Function, Get u Operator, la instruccin Return debe incluir un
valor expression y este valor expression debe dar como resultado un tipo de datos que se pueda
convertir al tipo de valor devuelto del procedimiento. En un procedimiento Function o Get, tambin
puede asignar una expresin al nombre del procedimiento para que acte como el valor devuelto y,
a continuacin, ejecutar Exit Function o Exit Property. En un procedimiento Operator, debe
utilizar Returnexpression.
Puede incluir tantas instrucciones Return en el mismo procedimiento como sea necesario.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Nota
El cdigo de un bloque Finally se ejecuta tras encontrarse una instruccin Return en un bloque Try o Catch,
pero antes de que se ejecute dicha instruccin Return. En esta situacin, la instruccin Return del
bloque Finally se ejecuta antes que la instruccin Return inicial, lo que permite un valor devuelto diferente.
Para evitar esta situacin potencialmente confusa, evite utilizar las instrucciones Return en bloques Finally.

Ejemplo
En el siguiente ejemplo se utiliza varias veces la instruccin Return para regresar al cdigo de
llamada cuando el procedimiento ya no tiene que hacer nada ms.
Public Function getAgePhrase(ByVal age As Integer) As String
If age > 60 Then Return "Senior"
If age > 40 Then Return "Middle-aged"
If age > 20 Then Return "Adult"
If age > 12 Then Return "Teen-aged"
If age > 4 Then Return "School-aged"
If age > 1 Then Return "Toddler"
Return "Infant"
End Function
....

SByte (Tipo de datos, Visual Basic)
Contiene enteros de 8 bits con signo (1 bytes) que se sitan en el intervalo entre -128 y 127.
Descripcin
Utilice el tipo de datos SByte para incluir valores enteros que no precisen el ancho total de datos
de Integer ni la mitad del ancho de datos de Short. En algunos casos, Common Language
Runtime puede empaquetar las variables SByte de forma que se ahorre consumo de memoria.
El valor predeterminado de SByte es 0.
Sugerencias de programacin
Compatibilidad con CLS. El tipo de datos SByte no forma parte de Common Language
Specification (CLS), por lo que el cdigo compatible con CLS no puede utilizar un
componente que lo utiliza.
Ampliacin. El tipo de datos SByte se ampla
a Short, Integer, Long, Decimal, Single y Double. Esto significa que se puede
convertir SByte en cualquiera de estos tipos sin encontrar un
error System.OverflowException.
Caracteres de tipo.SByte no tiene ningn carcter de tipo de literal o de tipo de
identificador.
Tipo en Framework. El tipo correspondiente en .NET Framework es la
estructura System.SByte.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0



Instruccin Select...Case (Visual Basic)
Ejecuta uno de varios grupos de instrucciones, segn el valor de una expresin.
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select

Partes

testexpression
Obligatorio. Expresin. Debe evaluarse en uno de los tipos de datos elementales
(Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Sin
gle, String,UInteger, ULong y UShort).
expressionlist
Requerido en una instruccin Case. Lista de clusulas de expresiones que representan
valores que coinciden para testexpression. Las clusulas de varias expresiones se separan
mediante comas. Cada clusula puede tomar una de las siguientes formas:
expression1 To expression2
[ Is ] comparisonoperator expression
expression
Utilice la palabra clave To para especificar los lmites de un intervalo de valores que
coinciden para testexpression. El valor de expression1 debe ser menor o igual que el valor
deexpression2.
Utilice la palabra clave Is con un operador de comparacin (=, <>, <, <=, > o >=) para
especificar una restriccin de los valores coincidentes para testexpression. Si no se
escribe, la palabra clave Is se insertar automticamente antes de comparisonoperator.
La forma de especificar slo expression se trata como un caso especial de la
forma Is donde comparisonoperator es el signo igual (=). Esta forma se evala
como testexpression =expression.
Las expresiones contenidas en expressionlist pueden ser de cualquier tipo de datos,
siempre que sean implcitamente convertibles al tipo de testexpression y el
correspondientecomparisonoperator sea vlido para los dos tipos con los que se utilice.
statements
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Una o ms instrucciones posteriores a Case que se ejecutan
si testexpression coincide con cualquier clusula de expressionlist.
elsestatements
Opcional. Una o ms instrucciones posteriores a Case Else que se ejecutan
si testexpression no coincide con ninguna clusula de expressionlist de cualquiera de las
instrucciones Case.
End Select
Termina la definicin la construccin Select...Case.
Descripcin
Si testexpression coincide con cualquier clusula de Case expressionlist, se ejecutan las
instrucciones situadas a continuacin de Case hasta la siguiente instruccin Case, Case
Else o End Select. El control pasa despus a la instruccin que sigue a End Select.
Si testexpression coincide con una clusula expressionlist en ms de una clusula Case, slo se
ejecutan las instrucciones situadas despus de la primera coincidencia.
La instruccin Case Else se utiliza para introducir las elsestatements que se deben ejecutar si no
se encuentra ninguna coincidencia entre las clusulas testexpression y expressionlist de cualquiera
de las dems instrucciones Case. Aunque no es necesario, es aconsejable tener una
instruccin Case Else en su construccin Select Case para controlar los
valores testexpressionimprevistos. Si no coincide ninguna
clusula Case expressionlist con testexpression y no hay ninguna instruccin Case Else, el control
pasa a la instruccin End Select siguiente.
Se pueden utilizar varias expresiones o intervalos en cada clusula Case. Por ejemplo, la lnea
siguiente es vlida.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
Nota
La palabra clave Is utilizada en las instrucciones Case y Case Else no es igual que Is (Operador, Visual
Basic), que se utiliza para la comparacin de referencias a objetos.
Puede especificar intervalos y varias expresiones para cadenas de caracteres. En el ejemplo
siguiente, Case coincide con cualquier cadena que sea exactamente igual a "apples", tenga un
valor comprendido entre "nuts" y "soup" en orden alfabtico, o contenga el mismo valor exacto que
el valor actual de testItem.
Case "apples", "nuts" To "soup", testItem
El valor de Option Compare puede afectar a las comparaciones de cadenas. Bajo Option
Compare Text, las cadenas "Apples" y "apples" se comparan como iguales, pero no bajo Option
Compare Binary.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Nota
Una instruccin Case con varias clusulas puede exhibir el comportamiento conocido como cortocircuitar.
Visual Basic evala las clusulas de izquierda a derecha y, si una de ellas coincide con testexpression, no se
evalan las clusulas restantes. El procedimiento de cortocircuitar puede mejorar el rendimiento, pero puede
generar resultados inesperados si est esperando que se evalen todas las expresiones de expressionlist. Para
obtener ms informacin sobre cmo cortocircuitar, vea Expresiones booleanas.
Si el cdigo contenido en un bloque de instrucciones Case o Case Else no necesita ejecutar ms
instrucciones contenidas en el bloque, puede salir del bloque utilizando la instruccin Exit Select.
Esto transfiere inmediatamente el control a la instruccin que sigue a End Select.
Las construcciones Select Case se pueden anidar. Cada construccin Select Case anidada debe
tener una instruccin End Select coincidente y estar completamente contenida dentro de un nico
bloque de instruccin Case o Case Else de la construccin Select Case ms exterior dentro de la
cual est anidada.
Ejemplo
En el ejemplo siguiente se utiliza una construccin Select Case para escribir una lnea
correspondiente al valor de la variable number. La segunda instruccin Case contiene el valor que
coincide con el valor actual de number, por lo que se ejecuta la instruccin que escribe "Between 6
and 8, inclusive".
Dim number As Integer = 8
Select Case number
Case 1 To 5
Debug.WriteLine("Between 1 and 5, inclusive")
' The following is the only Case clause that evaluates to True.
Case 6, 7, 8
Debug.WriteLine("Between 6 and 8, inclusive")
Case 9 To 10
Debug.WriteLine("Equal to 9 or 10")
Case Else
Debug.WriteLine("Not between 1 and 10, inclusive")
End Select


Instruccin Set (Visual Basic)
Declara un procedimiento de propiedad Set que se utiliza para asignar un valor a una propiedad.
[ <attributelist> ] [ accessmodifier ] Set (ByVal value [ As datatype ])
[ statements ]
End Set

Partes

attributelist
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Ver la Lista de atributos.
accessmodifier
Opcional en un mximo de una de las instrucciones Get y Set de esta propiedad. Puede
ser una de las siguientes:
Protected
Friend
Private
Protected Friend
Ver Niveles de acceso en Visual Basic.
value
Obligatorio. Parmetro que contiene el nuevo valor de la propiedad.
datatype
Obligatorio si Option Strict es On. Tipo de datos del parmetro value. El tipo de datos
especificado debe ser el mismo que el tipo de datos de la propiedad donde se declara esta
instruccin Set.
statements
Opcional. Una o ms instrucciones que se ejecutan cuando se llama al procedimiento de
propiedad Set.
End Set
Obligatorio. Termina la definicin del procedimiento de propiedad Set.
Descripcin
Cada propiedad debe tener un procedimiento de propiedad Set, a menos que la propiedad se
marque como ReadOnly. El procedimiento Set se utiliza para establecer el valor de la propiedad.
Visual Basic llama automticamente al procedimiento Set de una propiedad cuando una instruccin
de asignacin proporciona un valor que se va a almacenar en la propiedad.
Visual Basic pasa un parmetro al procedimiento Set durante las asignaciones de propiedades. Si
no se especifica un parmetro para Set, el entorno de desarrollo integrado (IDE) utiliza un
parmetro implcito denominado value. El parmetro contiene el valor que se va a asignar a la
propiedad. Generalmente, almacena este valor en una variable local privada y lo devuelve cada
vez que se llama al procedimiento Get.
El cuerpo de la declaracin de propiedad slo puede contener los procedimientos Get y Set de la
propiedad entre Property (Instruccin) y End Property No puede almacenar nada distinto de esos
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

procedimientos. En particular, no puede almacenar el valor actual de la propiedad. Este valor debe
almacenarse fuera de la propiedad, ya que si lo almacena en uno de los procedimientos de la
propiedad, el otro procedimiento no puede tener acceso a l. El enfoque habitual consiste en
almacenar el valor en una variable Private (Visual Basic) declarada en el mismo nivel que la
propiedad. Debe definir un procedimiento Set dentro de la propiedad a la que se aplica.
El procedimiento Set tiene como valor predeterminado el nivel de acceso de su propiedad
contenedora, a menos que utilice accessmodifier en la instruccin Set.
Reglas
Niveles mixtos de acceso. Si define una propiedad de lectura y escritura, puede
especificar un nivel de acceso diferente para el procedimiento Get o para el
procedimiento Set, pero no para ambos. Si hace esto, el nivel de acceso del procedimiento
debe ser ms restrictivo que el nivel de acceso de la propiedad. Por ejemplo, si la propiedad
se declara comoFriend, puede declarar el procedimiento Set como Private, pero no
como Public.
Si define una propiedad WriteOnly, el procedimiento Set representa la propiedad completa.
No puede declarar un nivel de acceso diferente para Set, porque esto establecera dos
niveles de acceso para la propiedad.
Comportamiento
Volver de un procedimiento de propiedad. Cuando el procedimiento Set vuelve al cdigo
de llamada, la ejecucin contina a partir de la instruccin que proporcion el valor que se
va a almacenar.
Los procedimientos de propiedad Set pueden volver utilizando Instruccin Return (Visual
Basic) o Instruccin Exit (Visual Basic).
Las instrucciones Exit Property y Return provocan una salida inmediata de un
procedimiento de propiedad. Puede aparecer cualquier nmero de instrucciones Exit
Property y Returnen cualquier parte del procedimiento y puede combinar instrucciones Exit
Property y Return.
Ejemplo
En el siguiente ejemplo se utiliza la instruccin Set para establecer el valor de una propiedad.
Class propClass
Private propVal As Integer
Property prop1() As Integer
Get
Return propVal
End Get
Set(ByVal value As Integer)
propVal = value
End Set
End Property
End Class
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0



Shadows
Especifica que un elemento de programacin declarado vuelve a declarar y oculta un elemento
denominado de forma idntica o un conjunto de elementos sobrecargados, en una clase base.
Descripcin
El propsito principal del sombreado (que tambin se conoce como ocultar por nombre) es
conservar la definicin de los miembros de clase. La clase base puede sufrir un cambio que cree
un elemento con el mismo nombre que otro ya definido. Si sucede esto, el
modificador Shadows fuerza a las referencias mediante la clase para que se resuelvan en el
miembro definido en lugar de hacerlo en el nuevo elemento de la clase base.
El sombreado y el reemplazo definen de nuevo un elemento heredado, pero hay diferencias
significativas entre los dos enfoques. Para obtener ms informacin, vea Sombrear en Visual
Basic.
Reglas
Contexto de la declaracin. Slo puede utilizarse Shadows en el nivel de clase. Esto
significa que el contexto de la declaracin para un elemento Shadows debe ser una clase, y
no puede ser un archivo de cdigo fuente, espacio de nombres, interfaz, mdulo, estructura
o procedimiento.
Se puede declarar slo un elemento de sombreado en una nica instruccin de declaracin.
Modificadores combinados. No se puede especificar Shadows junto
con Overloads, Overrides o Static en la misma declaracin.
Tipos de elementos. Puede hacer que cualquier tipo de elemento declarado prevalezca
sobre cualquier otro tipo. Si sombrea una propiedad o procedimiento con otra propiedad o
procedimiento, los parmetros y el tipo de valor devuelto no tienen que coincidir con los de
la propiedad o procedimiento de la clase base.
Acceso. El elemento sombreado en la clase base no est disponible normalmente desde la
clase derivada que lo sombrea. No obstante, se aplican las siguientes consideraciones.
Si el elemento de sombreado no es accesible desde el cdigo que hace referencia a
l, la referencia se resuelve como el elemento sombreado. Por ejemplo, si un
elementoPrivate sombrea un elemento de clase base, en su lugar, el cdigo que no
tiene permiso para obtener acceso al elemento Private obtiene acceso al elemento
de clase base.
Si se sombrea un elemento, an se podr tener acceso al mismo mediante un objeto
declarado con el tipo de la clase base. Tambin puede tener acceso a l a travs
deMyBase.
El modificador Shadows se puede utilizar en estos contextos:
Class (Instruccin)
Const (Instruccin)
Declare (Instruccin)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Delegate (Instruccin)
Dim (Instruccin)
Enum (Instruccin)
Event (Instruccin)
Function (Instruccin)
Interface (Instruccin)
Property (Instruccin)
Structure (Instruccin)
Sub (Instruccin)


Shared (Visual Basic)
Especifica que uno o varios elementos de programacin declarados estn asociados a una clase o
estructura en general y no a una instancia especfica de la clase o estructura.
Descripcin
Cundo se utiliza Shared
Al compartir un miembro de una clase o estructura, ste est disponible para cada instancia; en
cambio, si es no compartido, cada instancia mantiene su propia copia. Por ejemplo, esto es til si el
valor de una variable se aplica a toda la aplicacin. Si declara esta variable Shared, todas las
instancias tendrn acceso a la misma ubicacin de almacenamiento y si una instancia cambia el
valor de la variable, todas las instancias tendrn acceso al valor actualizado.
El uso compartido no modifica el nivel de acceso de un miembro. Por ejemplo, un miembro de
clase puede ser compartido y privado (accesible slo desde dentro la clase), o no compartido y
pblico. Para obtener ms informacin, vea Niveles de acceso en Visual Basic.
Reglas
Contexto de la declaracin. Slo puede utilizarse Shared en el nivel de mdulo. Esto
significa que el contexto de declaracin de un elemento Shared debe ser una clase o
estructura, y no un archivo de cdigo fuente, un espacio de nombres o un procedimiento.
Modificadores combinados. No se puede especificar Shared junto
con Overrides, Overridable, NotOverridable, MustOverride o Static (Visual Basic) en la
misma declaracin.
Acceso. Se tiene acceso a un elemento compartido calificndolo con su nombre de clase o
de estructura, y no con el nombre de variable de una instancia especfica de su clase o
estructura. Ni siquiera tiene que crear una instancia de una clase o estructura para tener
acceso a sus miembros compartidos.
El ejemplo siguiente llama al procedimiento compartido IsNaN expuesto por la
estructura Double.
If Double.IsNaN(result) Then MsgBox("Result is mathematically
undefined.")
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Uso compartido implcito. No se puede utilizar el modificador Shared en Instruccin Const
(Visual Basic), pero las constantes se comparten de forma implcita. De igual manera, no se
puede declarar un miembro de un mdulo o una interfaz Shared pero se comparte
implcitamente.
Comportamiento
Almacenamiento. Una variable o evento compartido se almacena en la memoria slo una
vez, independientemente del nmero de instancias que se hayan creado de su clase o
estructura. De igual manera, una propiedad o procedimiento compartido contiene slo un
conjunto de variables locales.
Acceso mediante una variable de instancia. Es posible tener acceso a un elemento
compartido calificndolo con el nombre de una variable que contiene una instancia
especfica de su clase o estructura. Aunque esto suele funcionar del modo previsto, el
compilador genera un mensaje de advertencia y obtiene acceso mediante el nombre de
clase o estructura en lugar de la variable.
Acceso mediante una expresin de instancia. Si tiene acceso a un elemento compartido
mediante una expresin que devuelve una instancia de su clase o estructura, el compilador
obtiene acceso mediante el nombre de clase o estructura en lugar de evaluar la expresin.
Esto genera unos resultados inesperados si haba previsto que la expresin realizara otras
acciones adems de devolver la instancia. Esto se ilustra en el siguiente ejemplo:
Sub main()
shareTotal.total = 10
' The preceding line is the preferred way to access total.
Dim instanceVar As New shareTotal
instanceVar.total += 100
' The preceding line generates a compiler warning message and
' accesses total through class shareTotal instead of through
' the variable instanceVar. This works as expected and adds
' 100 to total.
returnClass().total += 1000
' The preceding line generates a compiler warning message and
' accesses total through class shareTotal instead of calling
' returnClass(). This adds 1000 to total but does not work as
' expected, because the MsgBox in returnClass() does not run.
MsgBox("Value of total is " & CStr(shareTotal.total))
End Sub
Public Function returnClass() As shareTotal
MsgBox("Function returnClass() called")
Return New shareTotal
End Function
Public Class shareTotal
Public Shared total As Integer
End Class
En el ejemplo anterior, el compilador genera un mensaje de advertencia las dos veces que
el cdigo tiene acceso a la variable compartida total mediante una instancia. En cada caso,
obtiene acceso directamente mediante la clase shareTotal y no utiliza ninguna instancia. En
el caso de una llamada prevista al procedimiento returnClass, significa que ni tan siquiera
genera una llamada a returnClass, por lo que no se realiza la accin adicional de mostrar
"Function returnClass() called".
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El modificador Shared se puede utilizar en estos contextos:
Dim (Instruccin)
Event (Instruccin)
Function (Instruccin)
Operator (Instruccin)
Property (Instruccin)
Sub (Instruccin)


Short (Tipo de datos, Visual Basic)
Contiene enteros de 16 bits con signo (2 bytes) que se sitan en el intervalo entre -32.768 y
32.767.
Descripcin
Utilice el tipo de datos Short para incluir valores enteros que no requieren el ancho completo de
datos de Integer. En algunos casos, Common Language Runtime puede empaquetar las
variables Short de forma que se ahorre consumo de memoria.
El valor predeterminado de Short es 0.
Sugerencias de programacin
Ampliacin. El tipo de datos Short se ampla a Integer, Long, Decimal, Single o Double.
Esto significa que se puede convertir Short en cualquiera de estos tipos sin encontrar un
error System.OverflowException.
Caracteres de tipo Si se anexa el carcter de tipo literal S a un literal, se convierte al tipo
de datos Short. Short no tiene ningn carcter de tipo de identificador.
Tipo en Framework. El tipo correspondiente en .NET Framework es la
estructura System.Int16.


String (Tipo de datos, Visual Basic)
Incluye nmeros IEEE de punto flotante de precisin simple de 32 bits (4 bytes) con signo cuyos
valores van de -3,4028235E+38 a -1,401298E-45 para nmeros negativos y de 1,401298E-45 a
3,4028235E+38 para nmeros positivos. Los nmeros de precisin simple almacenan
aproximaciones de nmeros reales.
Descripcin
Utilice el tipo de datos Single para incluir valores de punto flotante que no requieren el ancho
completo de datos de Double. En algunos casos, Common Language Runtime puede empaquetar
las variables Single de forma que se ahorre consumo de memoria.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El valor predeterminado de Single es 0.
Sugerencias de programacin
Precisin. Cuando trabaje con nmeros de punto flotante, tenga presente que no siempre
tienen una representacin precisa en memoria. Esto podra conducir a resultados
inesperados en ciertas operaciones, como la comparacin de valores y el operador Mod.
Para obtener ms informacin, vea Solucionar problemas de tipos de datos.
Ampliacin. El tipo de datos Single ampla a Double. Esto significa que puede
convertir Single en Double sin encontrar un error System.OverflowException.
Ceros finales. Los tipos de datos de punto flotante no tienen representacin interna de
caracteres 0 finales. Por ejemplo, no distinguen entre 4,2000 y 4,2. Por consiguiente, los
caracteres 0 finales no aparecen cuando muestra o imprime valores de punto flotante.
Caracteres de tipo Al agregar el carcter de tipo de literal F a un literal, el tipo de datos se
convierte al tipo de datos Single. Si se agrega el carcter de tipo de identificador ! a
cualquier identificador, se convierte su tipo de datos al tipo Single.
Tipo en Framework. El tipo correspondiente en .NET Framework es la
estructura System.Single.
..

Static (Visual Basic)
Especifica si una o varias variables locales declaradas deben seguir existiendo y conservar sus
ltimos valores tras la finalizacin del procedimiento en el que se han declarado.
Descripcin
Normalmente, una variable local de un procedimiento deja de existir en cuanto finaliza el
procedimiento. Una variable esttica sigue existiendo y conserva su valor ms reciente. La prxima
vez que su cdigo llame al procedimiento, no se reinicializa la variable y sigue conservando el
ltimo valor asignado. Una variable esttica sigue existiendo durante el perodo de la clase o
mdulo para el que est definida.
Reglas
Contexto de la declaracin. Slo puede utilizar Static en variables local. Esto significa que
el contexto de la declaracin para una variable Static debe ser un procedimiento o un
bloque dentro de un procedimiento y no puede ser un archivo de cdigo fuente, un espacio
de nombres, una clase, una estructura o un mdulo.
No puede utilizar Static dentro de un procedimiento de estructura.
Modificadores combinados. No se puede especificar Static junto
con ReadOnly, Shadows o Shared en la misma declaracin.
Comportamiento
El comportamiento de cualquier variable local depende de si se declara en un
procedimiento Shared. Si el procedimiento es Shared, todas sus variables locales se comparten
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

automticamente, incluso las variables Static. Slo existe una copia de este tipo de variable para
toda la aplicacin. Llama a un procedimiento Shared utilizando el nombre de clase y no una
variable que seala a una instancia de la clase.
Si el procedimiento no es Shared, sus variables locales son variables de instancia, incluso las
variables Static. Existe una copia independiente de cada variable en todas las instancias de la
clase. Llama a un procedimiento no compartido utilizando una variable que seala a una instancia
concreta de la clase. Cualquier variable de esa instancia es independiente de una variable con el
mismo nombre de otra instancia. Por consiguiente, pueden contener valores diferentes.
Ejemplo
El siguiente ejemplo muestra el uso de Static.
Function updateSales(ByVal thisSale As Decimal) As Decimal
Static totalSales As Decimal = 0
totalSales += thisSale
Return totalSales
End Function

El valor totalSales de la variable Static slo se inicializa a 0 una vez. Cada vez que
escribe updateSales, totalSales sigue teniendo el valor calculado ms reciente.
El modificador Static se puede utilizar en este contexto:
Instruccin Dim (Visual Basic)


Step
Especifica un valor de incremento para un contador de bucle.
Descripcin
La palabra clave Step se puede utilizar en este contexto:
Instruccin For...Next (Visual Basic)


Instruccin Stop (Visual Basic)
Suspende la ejecucin.
Stop
Descripcin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Se pueden colocar instrucciones Stop en cualquier parte de los procedimientos para suspender la
ejecucin. El uso de la instruccin Stop es similar a establecer un punto de interrupcin en el
cdigo.
La instruccin Stop suspende la ejecucin, pero a diferencia de End no cierra ningn archivo ni
borra variables, a menos que se encuentre en un archivo ejecutable compilado (.exe).
Nota
Si la instruccin Stop se encuentra en cdigo que se est ejecutando fuera del entorno de desarrollo integrado
(IDE), se invoca el depurador. Esto es as independientemente de si el cdigo se compil en modo de
depuracin o en modo comercial.

Ejemplo
En este ejemplo se utiliza la instruccin Stop para suspender la ejecucin para cada iteracin a
travs del bucle For...Next.
Dim i As Integer
For i = 1 To 10
Debug.WriteLine(i)
' Stop during each iteration and wait for user to resume.
Stop
Next i


String (Tipo de datos, Visual Basic)
Contiene secuencias de puntos de cdigo de 16 bits sin signo (2 bytes) que van de un valor de 0 a
65535. Cada punto de cdigo, o cdigo de carcter, representa un carcter Unicode nico. Una
cadena puede contener de 0 a 2.000 millones (2^31) de caracteres Unicode aproximadamente.
Descripcin
Utilice el tipo de datos String para contener varios caracteres sin la sobrecarga de administracin
de matriz de Char(), una matriz de elementos Char.
El valor predeterminado de String es Nothing (una referencia nula). Observe que esto no es lo
mismo que la cadena vaca (valor "").
Caracteres Unicode
Los primeros 128 puntos de cdigo (0127) Unicode corresponden a las letras y smbolos de un
teclado estndar de EE.UU. Estos primeros 128 puntos de cdigo son los mismos que los que
define el juego de caracteres ASCII. Los siguientes 128 puntos de cdigo (128255) representan
caracteres especiales, como letras de alfabetos latinos, acentos, smbolos de moneda y fracciones.
Unicode utiliza los puntos de cdigo restantes (256-65535) para una amplia variedad de smbolos,
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

incluidos caracteres de texto de todo el mundo, signos diacrticos, y smbolos tcnicos y
matemticos.
Puede utilizar mtodos como IsDigit y IsPunctuation en una variable individual String para
determinar su clasificacin Unicode.
Requisitos de formato
Debe agregar un literal String entre comillas (" "). Si necesita incluir una comilla como uno de los
caracteres de la cadena, utilice dos comillas contiguas (""). Esto se ilustra en el siguiente ejemplo:
Dim j As String = "Joe said ""Hello"" to me."
Dim h As String = "Hello"
' The following messages all display the same thing:
' "Joe said "Hello" to me."
MsgBox(j)
MsgBox("Joe said " & """" & h & """" & " to me.")
MsgBox("Joe said """ & h & """ to me.")
Observe que las comillas contiguas que representan unas comillas de la cadena son
independientes de las comillas que comienzan y terminan el literal String.
Manipulacin de cadenas
Cuando asigna una cadena a una variable String, esa cadena es inmutable, lo que significa que no
puede cambiar su longitud ni su contenido. Cuando modifica una cadena de alguna manera, Visual
Basic crea una nueva cadena y abandona la anterior. La variable String seala a continuacin a la
nueva cadena.
Puede manipular el contenido de una variable String mediante varias funciones de cadena. En el
siguiente ejemplo se ilustra Left (Funcin, Visual Basic):
Dim S As String = "Database"
' The following statement sets S to a new string containing "Data".
S = Microsoft.VisualBasic.Left(S, 4)
Una cadena creada por otro componente puede completarse con espacios iniciales o finales. Si
recibe este tipo de cadena, puede utilizar Trim, LTrim y RTrim (Funciones) para quitar estos
espacios.
Para obtener ms informacin sobre manipulacin de cadenas, vea Cadenas en Visual Basic.
Sugerencias de programacin
Nmeros negativos. Tenga presente que los caracteres contenidos en String son sin signo
y no pueden representar valores negativos. En cualquier caso, no debera utilizar Stringpara
contener valores numricos.
Consideraciones sobre interoperabilidad. Si trabaja con componentes no escritos para
.NET Framework, por ejemplo objetos de automatizacin o COM, recuerde que los
caracteres de cadena pueden tener un ancho de datos distinto (8 bits) en otros entornos. Si
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

est pasando un argumento de cadena de caracteres de 8 bits a este tipo de componentes,
declrelo como Byte(), una matriz de elementos Byte, en lugar de String en el nuevo
cdigo de Visual Basic.
Caracteres de tipo. Anexar el carcter de tipo de identificador $ a un literal fuerza a que sea
de un tipo de datos String. String no tiene ningn carcter de tipo de literal. Sin embargo, el
compilador trata los literales incluidos entre comillas (" ") como String.
Tipo de Framework. El tipo correspondiente en .NET Framework es la clase System.String.


Structure (Visual Basic)
Restringe un parmetro de tipo genrico de forma que cualquier argumento de tipo que reciba sea
un tipo de valor o introduce una Structure (Instruccin).
Descripcin
Cuando declara un parmetro de tipo en un tipo genrico, puede imponer una restriccin, un
conjunto de una o varias condiciones que limitan el argumento de tipo que se puede enviar a dicho
parmetro de tipo. Para obtener ms informacin, vea "Restricciones" en Tipos genricos en Visual
Basic.
Entre los posibles requisitos de una restriccin se puede indicar que el argumento de tipo debe ser
un tipo de valor, por ejemplo una estructura, enumeracin o tipo de datos bsico. Esto se
especifica mediante la incorporacin de la palabra clave Structure en la restriccin.
Otro requisito posible es que el argumento de tipo debe ser un tipo de referencia, por
ejemplo, String, matriz o delegado, o bien un objeto creado a partir de una clase. Para especificar
un requisito de tipo de referencia, se incluye la palabra clave Class (Visual Basic) en la restriccin.
No tiene que especificar Class o Structure en una restriccin. No puede especificar ambas en la
misma restriccin.
La restriccin Structure no es igual que Structure (Instruccin).
....

Instruccin Sub (Visual Basic)
Declara el nombre, los parmetros y el cdigo que definen un procedimiento Sub.
[ <attributelist> ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shado
ws ]
Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslis
t | Handles eventlist ]
[ statements ]
[ Exit Sub ]
[ statements ]
End Sub

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Partes

attributelist
Opcional. Ver Lista de atributos.
accessmodifier
Opcional. Puede ser una de las siguientes:
Public
Protected
Friend
Private
Protected Friend
Vea Niveles de acceso en Visual Basic.
proceduremodifiers
Opcional. Puede ser una de las siguientes:
Overloads
Overrides
Overridable
NotOverridable
MustOverride
MustOverride Overrides
NotOverridable Overrides
Shared
Opcional. Ver Shared.
Shadows
Opcional. Ver Shadows.
name
Obligatorio. Nombre del procedimiento. Vea Nombres de elementos declarados.
typeparamlist
Opcional. Lista de parmetros de tipo para un procedimiento genrico. Ver Lista de tipos.
parameterlist
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Opcional. Lista de nombres de variable local que representan los parmetros de este
procedimiento. Vea Lista de parmetros.
Implements
Opcional. Indica que este procedimiento implementa uno o ms procedimientos Sub, cada
uno definido en una interfaz implementada por la clase o estructura contenedora de este
procedimiento. Vea Implements (Instruccin).
implementslist
Requerido si se suministra Implements. Lista de procedimientos Sub que se implementan.
implementedprocedure [ , implementedprocedure ... ]
Cada implementedprocedure tiene la sintaxis y las partes siguientes:
interface.definedname
Parte Descripcin
interface Obligatorio. Nombre de una interfaz implementada por la clase o estructura
contenedora de este procedimiento.
definedname Obligatorio. Nombre por el que est definido el procedimiento en interface.

Handles
Opcional. Indica que este procedimiento puede controlar uno o ms eventos concretos.
Vea Handles.
eventlist
Requerido si se suministra Handles. Lista de eventos que este procedimiento controla.
eventspecifier [ , eventspecifier ... ]
Cada eventspecifier tiene la sintaxis y las partes siguientes:
eventvariable.event
Parte Descripcin
eventvariable Obligatorio. Variable de objeto declarada con el tipo de datos de la clase o
estructura que provoca el evento.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

event Obligatorio. Nombre del evento que este procedimiento controla.

statements
Opcional. Bloque de instrucciones que se ejecuta dentro de este procedimiento.
EndSub
Termina la definicin de este procedimiento.
Descripcin
Todo el cdigo ejecutable debe estar dentro de un procedimiento. Utilice un
procedimiento Sub cuando no necesite devolver un valor al cdigo de llamada. Utilice un
procedimientoFunction cuando necesite devolver un valor.
Slo puede utilizar Sub en el nivel de mdulo. Esto significa que el contexto de declaracin de un
procedimiento Sub tiene que ser una clase, estructura, mdulo o interfaz, y no puede ser un
archivo de cdigo fuente, espacio de nombres, procedimiento o bloque. Para obtener ms
informacin, vea Contextos de declaracin y niveles de acceso predeterminados.
Los procedimientos Sub tienen como valor predeterminado el acceso pblico. Puede ajustar sus
niveles de acceso con los modificadores de acceso.
Reglas
Implementacin. Si este procedimiento utiliza la palabra clave Implements, la clase o
estructura contenedora deben tener una instruccin Implements inmediatamente despus
de la instruccin Class o Structure. La instruccin Implements debe incluir cada interfaz
especificada en implementslist. Sin embargo, el nombre por el que una interfaz define el
procedimiento Sub (en definedname) no tiene que ser igual que el nombre de este
procedimiento (en name).
Comportamiento
Volver de un procedimiento. Cuando el procedimiento Sub regrese al cdigo que realiza la
llamada, la ejecucin contina con la instruccin que sigue a la instruccin que lo llam.
Las instrucciones Exit Sub y Return provoca una salida inmediata de un
procedimiento Sub. Puede aparecer cualquier nmero de instrucciones Exit
Sub y Return en cualquier parte del procedimiento y se pueden combinar instrucciones Exit
Sub y Return.
En el ejemplo siguiente se muestra cmo volver de un procedimiento Sub.
Sub mySub(ByVal q As String)
Return
End Sub
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Llamar a un procedimiento. Un procedimiento Sub, al igual que un
procedimiento Function, es un procedimiento independiente que puede tomar parmetros y
ejecutar una serie de instrucciones. Sin embargo, a diferencia de un
procedimiento Function, que devuelve un valor, un procedimiento Sub no se puede utilizar
en una expresin.
Puede llamar a un procedimiento Sub con el nombre del procedimiento, seguido por la lista
de argumentos entre parntesis, en una instruccin. Si no se proporcionan argumentos, se
pueden omitir los parntesis. Sin embargo, el cdigo es ms legible si siempre se incluyen
parntesis.
Opcionalmente puede utilizar la instruccin Call para llamar al procedimiento Sub. De este
modo se puede mejorar la legibilidad del cdigo.
Solucin de problemas
Orden de ejecucin. Visual Basic reorganiza a veces las expresiones aritmticas para aumentar la
eficacia interna. Por esa razn, si la lista de argumentos incluye expresiones que llaman a otros
procedimientos, no puede confiar en que se les llame en un orden determinado.
Ejemplo
En este ejemplo se utiliza la instruccin Sub para definir el nombre, parmetros y cdigo que
forman el cuerpo de un procedimiento Sub.
Sub computeArea(ByVal length As Double, ByVal width As Double)
' Declare local variable.
Dim area As Double
If length = 0 Or width = 0 Then
' If either argument = 0 then exit Sub immediately.
Exit Sub
End If
' Calculate area of rectangle.
area = length * width
' Print area to Immediate window.
Debug.WriteLine(area)
End Sub
....

SyncLock (Instruccin)
Adquiere un bloqueo exclusivo para un bloque de instrucciones antes de ejecutar el bloque.
SyncLock lockobject
[ block ]
End SyncLock

Partes

lockobject
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Obligatorio. Expresin que se evala como una referencia a objeto.
block
Opcional. Bloque de instrucciones que se ejecuta cuando se adquiere el bloqueo.
End SyncLock
Termina un bloque SyncLock.
Comentarios
La instruccin SyncLock se asegura de que varios subprocesos no ejecuten el bloque de
instrucciones al mismo tiempo. SyncLock evita que los subprocesos entren en el bloque hasta que
no lo ejecute ningn otro subproceso.
El uso ms comn de SyncLock es impedir que ms de un subproceso actualice los datos
simultneamente. Si las instrucciones que manipulan los datos deben completarse sin
interrupciones, colquelas dentro de un bloque SyncLock.
Un bloque de instrucciones protegido por un bloqueo exclusivo se denomina a veces una seccin
crtica.
Reglas
Bifurcacin. No puede bifurcar en un bloque SyncLock desde fuera del bloque.
Valor del objeto Lock. El valor de lockobject no puede ser Nothing. Debe crear el objeto de
bloqueo antes de utilizarlo en una instruccin SyncLock.
No puede cambiar el valor de lockobject mientras ejecuta un bloque SyncLock. El
mecanismo requiere que el objeto de bloqueo permanezca inalterado.
Comportamiento
Mecanismo. Cuando un subproceso llega a la instruccin SyncLock, evala la
expresin lockobject e interrumpe la ejecucin hasta que adquiere un bloqueo exclusivo
sobre el objeto devuelto por la expresin. Cuando otro subproceso llega a la
instruccin SyncLock, no adquiere un bloqueo hasta que el primer subproceso ejecute la
instruccin End SyncLock
Datos protegidos. Si lockobject es una variable Shared, el bloqueo exclusivo impide que un
subproceso de cualquier instancia de la clase ejecute el bloque SyncLock mientras lo
ejecute otro subproceso. Esto protege los datos compartidos entre todas las instancias.
Si lockobject es una variable de instancia (no Shared), el bloqueo impide que un
subproceso que se ejecuta en la instancia actual ejecute el bloque SyncLock en la misma
instancia a la vez que otro subproceso. Esto protege los datos mantenidos por la instancia
individual.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Adquisicin y liberacin. Un bloque SyncLock se comporta como otra
construccin Try...Finally en la que el bloque Try adquiere un bloqueo exclusivo
sobre lockobject y el bloqueFinally lo libera. Gracias a esto, el bloque SyncLock garantiza
la liberacin del bloqueo, independientemente de cmo salga del bloque. Esto es verdad
incluso en el caso de una excepcin no controlada.
Llamadas del marco de trabajo. El bloque SyncLock adquiere y libera el bloqueo exclusivo
llamando a los mtodos Enter y Exit de la clase Monitor en el espacio de
nombresSystem.Threading.
Programar prcticas
La expresin lockobject se debe evaluar siempre como un objeto que pertenece exclusivamente a
su clase. Debe declarar una variable de objeto Private para proteger los datos que pertenecen a la
instancia actual o una variable de objeto Private Shared para proteger los datos comunes a todas
las instancias.
No debe utilizar la palabra clave Me para proporcionar un objeto de bloqueo para los datos de
instancia. Si existe un cdigo ajeno a su clase con una referencia a una instancia de su clase, ste
puede utilizar esta referencia como un objeto de bloqueo para un bloque SyncLock totalmente
distinto del suyo y proteger datos distintos. De esta manera, su clase y la otra clase podran impedir
que se ejecutaran sus bloques SyncLock no relacionados. Bloquear de forma similar una cadena
puede ser problemtico ya que cualquier otro cdigo del proceso, que utilice la misma cadena,
compartir el mismo bloqueo.
Asimismo, no debe utilizar el mtodo Me.GetType para proporcionar un objeto de bloqueo para
datos compartidos. Esto se debe a que GetType devuelve siempre el mismo objeto Typepara un
nombre de clase determinado. El cdigo externo podra llamar a GetType en su clase y obtener el
mismo objeto de bloqueo que est utilizando. Esto provocara el bloqueo de las dos clases entre s
desde sus bloques SyncLock.
Ejemplo
El ejemplo siguiente muestra una clase que mantiene una lista simple de mensajes. Contiene los
mensajes en una matriz y el ltimo elemento utilizado de esa matriz en una variable. El
procedimiento addAnotherMessage incrementa el ltimo elemento y almacena el nuevo mensaje.
Estas dos operaciones estn protegidas por las instrucciones SyncLock y End SyncLockporque
una vez incrementado el ltimo elemento, se debe almacenar el nuevo mensaje antes de que
cualquier otro subproceso pueda incrementar de nuevo el ltimo elemento.
Class simpleMessageList
Public messagesList() As String = New String(50) {}
Public messagesLast As Integer = -1
Private messagesLock As New Object
Public Sub addAnotherMessage(ByVal newMessage As String)
SyncLock messagesLock
messagesLast += 1
messagesList(messagesLast) = newMessage
End SyncLock
End Sub
End Class

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Si la clase simpleMessageList compartiera una lista de mensajes entre todas sus instancias, las
variables messagesList y messagesLast se declararan como Shared. En este caso, la
variable messagesLock tambin debera ser Shared para que hubiera un nico objeto de bloqueo
utilizado por todas las instancias.


Then
Precede a un bloque de instrucciones que se compila o se ejecuta si una condicin probada es
verdadera.
Descripcin
La palabra clave Then se puede utilizar en estos contextos:
#If...Then...#Else (Directiva)
If...Then...Else (Instruccin)
..

Instruccin Throw (Visual Basic)
Produce una excepcin dentro de un procedimiento.
Throw [ expression ]

Parte

expression
Proporciona informacin acerca de la excepcin que se va a producir. Opcional si se
encuentra en una instruccin Catch; en caso contrario, es necesaria.
Descripcin
La instruccin Throw produce una excepcin que puede controlar con cdigo estructurado de
control de excepciones (Try...Catch...Finally) o cdigo no estructurado de control de excepciones
(On Error GoTo). Puede utilizar la instruccin Throw para interceptar errores dentro del cdigo
porque Visual Basic asciende por la pila de llamadas hasta que encuentra el cdigo de control de
excepciones apropiado.
Una instruccin Throw sin expresiones slo se puede utilizar en una instruccin Catch; en este
caso, la instruccin vuelve a producir la excepcin que controla la instruccin Catch.
La instruccin Throw restablece la pila de llamadas para la excepcin expression. Si no se
proporciona expression, la pila de llamadas queda sin modificar. Puede tener acceso a la pila de
llamadas para la excepcin a travs de la propiedad StackTrace.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Ejemplo
En el siguiente cdigo se utiliza la instruccin Throw para producir una excepcin:
' Throws a new exception.
Throw New System.Exception("An exception has occurred.")


To
Separa los valores inicial y final de un contador de bucle o de un intervalo de coincidencia de
valores.
Descripcin
La palabra clave To se puede utilizar en estos contextos:
For...Next (Instruccin)
Select...Case (Instruccin)

True (Visual Basic)
Representa un valor de tipo Boolean que aprueba una comprobacin condicional.
Descripcin
Los valores Boolean (Tipo de datos, Visual Basic) no se almacenan como nmeros y los valores
almacenados no se consideran equivalentes a nmeros. No debe escribir cdigo que se base en
los valores numricos equivalentes de True y False. Siempre que sea posible, debe restringir el
uso de variables Boolean a los valores lgicos para los que se han diseado. Si fuera necesario
mezclar valores de tipo Boolean y numricos, asegrese de entender el mtodo de conversin
elegido. Para obtener ms informacin, vea la seccin sobre cmo el tipo Boolean no se convierte
al tipo numrico correctamente en Solucionar problemas de tipos de datos.


TryCast
Introduce una operacin de conversin de tipos que no produce una excepcin.
Descripcin
Si se produce un error al intentar llevar a cabo una conversin, CType y DirectCast producen un
error InvalidCastException. Esto puede afectar negativamente al rendimiento de la
aplicacin.TryCast devuelve Nothing (Visual Basic), de modo que en lugar de controlar una posible
excepcin, slo debe comprobar el resultado devuelto con Nothing.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Utilice la palabra clave TryCast del mismo modo que utiliza las palabras clave CType
(Funcin) y DirectCast. Proporcione una expresin como primer argumento y el tipo al que se va a
convertir como segundo argumento. TryCast slo funciona en tipos de referencia, como clases e
interfaces. Requiere que exista una relacin de herencia o implementacin entre los dos tipos. Esto
significa que un tipo debe heredarse del otro o implementar al otro.
Errores
TryCast genera un error del compilador si detecta que no existe ninguna relacin de herencia o
implementacin. Sin embargo, la ausencia de un compilador no garantiza el xito de la conversin.
Si la conversin deseada es de restriccin, puede producirse un error en tiempo de ejecucin. Si
esto ocurre, TryCast devuelve Nothing (Visual Basic).
Palabras clave para conversiones
A continuacin se incluye una comparacin de las palabras clave de conversin de tipos.
Palabra
clave
Tipos de
datos
Relacin de argumentos Error en tiempo de ejecucin
CType
(Funcin)
Cualquier tipo
de datos
La conversin de ampliacin o
restriccin debe definirse entre dos
tipos de datos
Produce InvalidCastException
DirectCast Cualquier tipo
de datos
Un tipo debe heredarse del otro
tipo o implementarlo
Produce InvalidCastException
TryCast Slo tipos de
referencia
Un tipo debe heredarse del otro
tipo o implementarlo
Devuelve Nothing (Visual
Basic)

Ejemplo
En el ejemplo siguiente se muestra cmo utilizar TryCast.
Function PrintTypeCode(ByVal obj As Object) As String
Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
If objAsConvertible Is Nothing Then
Return obj.ToString() & " does not implement IConvertible"
Else
Return "Type code is " & objAsConvertible.GetTypeCode()
End If
End Function


TypeOf (Operador, Visual Basic)
Compara una variable de referencia a objeto con un tipo de datos.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


result = TypeOf objectexpression Is typename

Partes

result
Devuelto. Valor Boolean.
objectexpression
Obligatorio. Cualquier expresin que se evala como un tipo de referencia.
typename
Obligatorio. Cualquier nombre de tipo de datos.
Descripcin
El operador TypeOf determina si el tipo en tiempo de ejecucin de objectexpression es compatible
con typename. La compatibilidad depende de la categora de tipo de typename. La tabla siguiente
muestra cmo se determina la compatibilidad.
Categora de tipo
de typename
Criterio de compatibilidad
Class objectexpression es de tipo typename o hereda de typename
Structure objectexpression es de tipo typename
Interface objectexpression implementa typename o hereda de una clase que
implementa typename
Si el tipo en tiempo de ejecucin de objectexpression satisface el criterio de
compatibilidad, result es True. De lo contrario, result es False.
TypeOf se utiliza siempre con la palabra clave Is para construir la expresin TypeOf...Is.
Ejemplo
En el ejemplo siguiente se utilizan las expresiones TypeOf...Is para comprobar la compatibilidad de
tipo de dos variables de referencia a objeto con distintos tipos de datos.
Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.
Form)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms
.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.For
ms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.Componen
tModel.IComponent)
La variable refInteger tiene un tipo en tiempo de ejecucin de Integer. Es compatible
con Integer pero no con Double. La variable refForm tiene un tipo en tiempo de ejecucin
de Form. Es compatible con Form porque ste es su tipo, con Control porque Form hereda
de Control y con IComponent porque Form hereda de Component, que implementa IComponent.
Sin embargo, refForm no es compatible con Label.
..

UInteger (Tipo de datos)
Contiene enteros de 32 bits sin signo (4 bytes) que se sitan en el intervalo entre 0 y
4.294.967.295.
Descripcin
El tipo de datos UInteger proporciona el valor sin signo ms largo en el ancho de datos ms eficaz.
El valor predeterminado de UInteger es 0.
Sugerencias de programacin
Los tipos de datos UInteger y Integer proporcionan un rendimiento ptimo en un procesador de 32
bits, ya que los tipos de enteros ms pequeos (UShort, Short, Byte y SByte), aunque utilizan
menos bits, necesitan ms tiempo para cargarse, almacenarse y obtenerse.


ULong (Tipo de datos, Visual Basic)
Contiene enteros de 64 bits sin signo (8 bytes) que van de un valor de 0 a
18.446.744.073.709.551.615 (ms de 1,84 veces 10 ^ 18).
Descripcin
Utilice el tipo de datos ULong para contener datos binarios demasiado grandes para UInteger o
valores de enteros sin signo lo ms grandes posibles.
El valor predeterminado de ULong es 0.
Sugerencias de programacin
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Nmeros negativos. Dado que ULong es un tipo sin signo, no puede representar un
nmero negativo. Si utiliza el operador menos (-) unario en una expresin que produce un
resultado del tipo ULong, Visual Basic convierte primero la expresin a Decimal.
Compatibilidad con CLS.El tipo de datos ULong no forma parte de Common Language
Specification (CLS), por lo que el cdigo compatible con CLS no puede utilizar un
componente que lo utiliza.
Consideraciones sobre interoperabilidad. Si trabaja con componentes no escritos para
.NET Framework, por ejemplo objetos de automatizacin o COM, recuerde que los tipos
como ulong pueden tener un ancho de datos distinto (32 bits) en otros entornos. Al pasar un
argumento de 32 bits a esos componentes, declrelo como UInteger en lugar de ULongen
el cdigo administrado de Visual Basic. Adems, la automatizacin no admite enteros de 64
bits en Windows 95, Windows 98, Windows ME o Windows 2000. No se puede pasar ningn
argumento ULong de Visual Basic a un componente de automatizacin en estas
plataformas.
Ampliacin. El tipo de datos ULong se ampla a Decimal, Single y Double. Esto significa
que se puede convertir ULong a cualquiera de estos tipos sin encontrar un
errorSystem.OverflowException.
Caracteres de tipo. Anexar los caracteres de tipo de literal UL a un literal fuerza a que sea
de un tipo de datos ULong. ULong no tiene ningn carcter de tipo de identificador.
Tipo de Framework. El tipo correspondiente en .NET Framework es la
estructura System.UInt64.
.

UShort (Tipo de datos, Visual Basic)
Contiene enteros de 16 bits sin signo (2 bytes) que se sitan en el intervalo entre 0 y 65.535.
Descripcin
Utilice el tipo de datos UShort para contener datos binarios demasiado grandes para Byte.
El valor predeterminado de UShort es 0.
Sugerencias de programacin
Nmeros negativos. Dado que UShort es un tipo sin signo, no puede representar un
nmero negativo. Si utiliza el operador menos (-) unario en una expresin que produce un
resultado del tipo UShort, Visual Basic convierte primero la expresin a Integer.
Compatibilidad con CLS. El tipo de datos UShort no forma parte de Common Language
Specification (CLS), por lo que el cdigo compatible con CLS no puede utilizar un
componente que lo utiliza.
Ampliacin. El tipo de datos UShort se ampla
a Integer, UInteger, Long, ULong, Decimal, Single y Double. Esto significa que se puede
convertir UShort en cualquiera de estos tipos sin encontrar un
error System.OverflowException.
Caracteres de tipo Si se anexa el carcter de tipo literal US a un literal, se convierte al tipo
de datos UShort. UShort no tiene ningn carcter de tipo de identificador.
Tipo en Framework. El tipo correspondiente en .NET Framework es la
estructura System.UInt16.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0



Instruccin Using (Visual Basic)
Declara el principio de un bloque Using y, opcionalmente, adquiere los recursos del sistema que
controla el bloque.
Using { resourcelist | resourceexpression }
[ statements ]
End Using

Partes

resourcelist
Obligatorio si no se proporciona una expresin resourceexpression. Presenta una lista de
uno o ms recursos del sistema que controla este bloque Using.
resourceexpression
Obligatorio si no se proporciona una resourcelist. Variable de referencia o expresin que
hace referencia a un recurso del sistema que va a controlar este bloque Using.
statements
Opcional. Bloque de instrucciones que ejecuta el bloque Using.
End Using
Obligatorio. Finaliza la definicin del bloque Using y desecha todos los recursos que
controla.
Cada recurso incluido en la parte resourcelist tiene la siguiente sintaxis y partes:
resourcename As New resourcetype [ ( [ arglist ] ) ]
O bien,
resourcename As resourcetype = resourceexpression
Partes de resourcelist
resourcename
Obligatorio. Variable de referencia que hace referencia a un recurso del sistema que
controla el bloque Using.
New
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Obligatorio si la instruccin Using adquiere el recurso. Si ya ha adquirido el recurso, utilice
la segunda alternativa de la sintaxis.
resourcetype
Obligatorio. Clase del recurso. La clase debe implementar la interfaz IDisposable.
arglist
Opcional. Lista de argumentos que est pasando al constructor para crear una instancia
de resourcetype. Ver Lista de parmetros.
resourceexpression
Obligatorio. Variable o expresin que hace referencia a un recurso del sistema que
satisface los requisitos de resourcetype. Si utiliza la segunda alternativa de la sintaxis,
debe adquirir el recurso antes de pasar el control a la instruccin Using.
Descripcin
A veces su cdigo requiere un recurso no administrado, como un identificador de archivos, un
contenedor COM o una conexin SQL. Un bloque Using garantiza la eliminacin de uno o ms de
tales recursos cuando su cdigo termina de usarlos. Esto los pone a disposicin de otro cdigo
para que los pueda utilizar.
Los recursos administrados se eliminan mediante el recolector de elementos no utilizados de .NET
Framework sin necesidad de cdigo adicional por su parte. Para los recursos administrados no es
necesario utilizar ningn bloque Using.
Un bloque Using tiene tres partes: adquisicin, uso y eliminacin.
Adquisicin significa crear una variable e inicializarla para hacer referencia al recurso del
sistema. La instruccin Using puede adquirir uno o ms recursos, o bien, puede adquirir
exactamente un recurso antes de entrar en el bloque y proporcionarlo a la instruccin Using.
Si proporciona una resourceexpression, debe adquirir el recurso antes de pasar el control a
la instruccin Using.
Uso significa tener acceso a los recursos y realizar acciones con ellos. Las instrucciones
entre Using y End Using representan el uso de los recursos.
Eliminacin significa llamar al mtodo Dispose en el objeto de resourcename. Esto permite
el objeto terminar limpiamente su recurso no administrado. La instruccin End Usingelimina
los recursos bajo el control del bloque Using.
Comportamiento
Un bloque Using se comporta como una construccin Try...Finally en la que el bloque Try utiliza
los recursos y el bloque Finally los desecha. Gracias a esto, el bloque Using garantiza la
eliminacin de los recursos, independientemente de cmo salga del bloque. Esto es cierto incluso
en el caso de una excepcin no controlada, excepto para una excepcinStackOverflowException.
El mbito de cada variable de recurso adquirido por la instruccin Using se limita al bloque Using.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Si especifica ms de un recurso de sistema en la instruccin Using, el efecto es el mismo que si
anidara unos bloques Using dentro de otros.
Control de excepcin estructurada dentro de un bloque Using
Si necesita controlar una excepcin que podra aparecer dentro del bloque Using, puede agregarle
una construccin Try...Finally. Si necesita controlar el caso en el que la instruccin Usingno
consigue adquirir un recurso, puede comprobar si resourcename es Nothing.
Control de excepcin estructurada en lugar de un bloque Using
Si necesita un control ms preciso sobre la adquisicin de los recursos, o si necesita cdigo
adicional en el bloque Finally, puede volver a escribir el bloque Using como una
construccinTry...Finally. El ejemplo siguiente muestra una estructura Try y
construcciones Using que son equivalentes en la adquisicin y eliminacin de resource.
Using resource As New resourceType
' Insert code to work with resource.
End Using
' THE FOLLOWING TRY CONSTRUCTION IS EQUIVALENT TO THE USING BLOCK
Dim resource As New resourceType
Try
' Insert code to work with resource.
Catch ex As Exception
' Insert code to process exception.
Finally
' Insert code to do additional processing before disposing of resource.
resource.Dispose()
End Try

Nota
El cdigo situado dentro del bloque Using no debera asignar a otra variable el objeto de resourcename.
Cuando sale del bloque Using, se elimina el recurso y la otra variable no puede tener acceso al recurso al que
seala.

Ejemplo
El ejemplo siguiente utiliza un bloque Using para adquirir una nueva fuente. Esto garantiza que el
sistema llama al mtodo Dispose de la fuente cuando su cdigo sale del bloque.
Public Sub setbigbold(ByVal c As Control)
Using nf As New System.Drawing.Font("Arial", 12.0F, _
System.Drawing.FontStyle.Bold)

c.Font = nf
c.Text = "This is 12-point Arial bold"
End Using
End Sub

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


When
Agrega una comprobacin condicional a una instruccin Catch.
Descripcin
La palabra clave When se puede utilizar en este contexto:
Try...Catch...Finally (Instrucciones)

While (Visual Basic)
Especifica una condicin que permite continuar la ejecucin de un bucle Do.
Descripcin
La palabra clave While no es igual que la instruccin de apertura del bloque While...End While
La palabra clave While se puede utilizar en este contexto:
Do...Loop (Instrucciones)

Widening
Indica que un operador de conversin (CType) convierte una clase o una estructura en un tipo que
puede incluir todos los valores posibles de la clase o la estructura original.
Convertir con la palabra clave Widening
El procedimiento de conversin debe especificar Public Shared adems de Widening.
Las conversiones de ampliacin son siempre satisfactorias en tiempo de ejecucin y no provocan
nunca prdida de datos. Ejemplos son Single a Double, Char a String y un tipo derivado a su tipo
base. Esta ltima conversin es de ampliacin ya que el tipo derivado contiene todos los miembros
del tipo base y es, por tanto, una instancia del tipo base.
El cdigo que la utiliza no tiene que emplear CType para las conversiones de ampliacin, aun
cuando Option Strict tenga el valor On.
La palabra clave Widening se puede utilizar en este contexto:
Operator (Instruccin)
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


Instruccin With...End With (Visual Basic)
Ejecuta una serie de instrucciones que hacen referencia repetidas veces a un nico objeto o
estructura.
With object
[ statements ]
End With

Partes

object
Obligatorio. Variable o expresin. Se puede evaluar como cualquier tipo de datos, incluidos
los tipos elementales.
statements
Opcional. Una o ms instrucciones incluidas entre With y End With que se ejecutan
en object.
End With
Obligatorio. Termina la definicin del bloque With.
Descripcin
With...End With permite realizar una serie de instrucciones sobre un objeto especificado sin volver
a calificar el nombre del objeto. Si la ruta de acceso de calificacin al objeto es larga,
utilizar With...End With puede mejorar el rendimiento. Un bloque With tambin reduce la
necesidad de escribir repetidamente la ruta de acceso de calificacin y el riesgo de cometer errores
al escribir alguno de sus elementos.
Por ejemplo, para cambiar un nmero de propiedades diferentes en un nico objeto, coloque las
instrucciones de asignacin de las propiedades dentro de With...End With, haciendo referencia al
objeto una vez, en lugar de hacerlo en cada una de las asignaciones de propiedades.

Reglas
Tipos de datos. El tipo de datos de object puede ser cualquier tipo de clase o estructura, o
incluso un tipo elemental de Visual Basic como Integer. .NET Framework admite todos los
tipos elementales con clases o estructuras, que tienen los miembros a los que puede
obtener acceso dentro de un bloque With.
Declaracin. Debe declarar object antes de escribir el bloque With. No puede declararlo en
la instruccin With.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Nmero de iteraciones. Un bloque With no es una construccin iterativa. A menos que
haya un bucle dentro del bloque, las instrucciones slo se ejecutan una vez.
Estructuras anidadas. Las estructuras With...End With se pueden anidar colocando una
estructura dentro de otra. Para obtener un ejemplo, vea Cmo: Realizar varias acciones en
un objeto.
Sin embargo, como los miembros de instrucciones externas estn enmascarados dentro de
las instrucciones internas, debe proporcionar una referencia de objeto completa en un
bloque With interno a cualquier miembro de un bloque With externo.
Tambin puede anidar distintos tipos de estructuras de control dentro de otras. Para obtener
ms informacin, vea Estructuras de control anidadas.
Transferir fuera de la estructura. Visual Basic no admite Instruccin Exit (Visual
Basic) para transferir el control fuera de un bloque With. Si es necesario salir antes de que
se hayan ejecutado todas las instrucciones, coloque una etiqueta en la instruccin End
With y utilice la GoTo (Instruccin) para bifurcar la ejecucin hacia ella. Para obtener ms
informacin, veaCmo: Aplicar etiquetas a las instrucciones.
El control no se puede transferir desde fuera de un bloque With hacia su interior, ni desde
dentro de l hacia el exterior. Puede llamar a un procedimiento desde dentro del bloque,
pero el control vuelve a la instruccin siguiente.
Acceso a otros objetos. Una vez escrito un bloque With, object no se puede reasignar
hasta haber pasado la instruccin End With. Por consiguiente, se puede tener acceso a los
mtodos y propiedades de slo el objeto especificado sin calificarlos. Se pueden utilizar
mtodos y propiedades de otros objetos, pero es necesario calificarlos con los nombres de
objeto.
Ejemplo
El ejemplo siguiente utiliza un bloque With para ejecutar una serie de instrucciones en un nico
objeto. El ejemplo supone que ya se ha creado el objeto testObject y expone las propiedades a las
que se hace referencia.
With testObject
.Height = 100
.Text = "Hello, World"
.ForeColor = System.Drawing.Color.Green
.Font = New System.Drawing.Font(.Font, _
System.Drawing.FontStyle.Bold)
End With

WithEvents
Especifica que una o ms variable miembro declaradas hacen referencia a una instancia de una
clase que puede provocar eventos.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
Cuando una variable se define utilizando WithEvents, puede especificar mediante declaracin que
un mtodo controla los eventos de la variable mediante la palabra clave Handles.
Slo puede utilizar WithEvents en el nivel de clase o de mdulo. Esto significa que el contexto de
declaracin de una variable WithEvents debe ser una clase o un mdulo, y no un archivo de
cdigo fuente, un espacio de nombres o un procedimiento.
No puede utilizar WithEvents dentro de un miembro de estructura.
Con WithEvents slo se pueden declarar variables individuales (no matrices).
Reglas
Tipos de elementos. Debe declarar las variables WithEvents para que sean variables de
objeto y que puedan aceptar instancias de clase. Sin embargo, no puede declararlas
comoObject. Debe declararlas como la clase especfica que puede provocar los eventos.
El modificador WithEvents se puede utilizar en este contexto: Instruccin Dim (Visual Basic)

WriteOnly
Especifica que se puede escribir pero no leer una propiedad.
Descripcin
Reglas
Contexto de la declaracin. Slo puede utilizarse WriteOnly en el nivel de mdulo. Esto significa
que el contexto de la declaracin para una propiedad WriteOnly debe ser una clase, estructura o
mdulo y no puede ser un archivo de cdigo fuente, espacio de nombres o procedimiento.
Puede declarar una propiedad como WriteOnly, pero no una variable.
Cundo se utiliza WriteOnly
A veces desea que el cdigo utilizado pueda establecer un valor pero sin descubrir lo que es. Por
ejemplo, se deben proteger los datos sensibles, como nmeros de registro social o contraseas,
para que no obtenga acceso a ellos ningn componente que no lo haya establecido. En estos
casos, puede utilizar una propiedad WriteOnly para establecer el valor.

Nota de seguridad
Cuando define y utiliza una propiedad WriteOnly, tenga en cuenta las medidas de proteccin adicionales
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

siguientes:
Reemplazo. Si la propiedad es un miembro de una clase, permita que tenga un valor
predeterminado NotOverridable y no la declare Overridable ni MustOverride. Esto evita
que una clase derivada tenga un acceso no deseado mediante un reemplazo.
Nivel de acceso. Si tiene datos sensibles de una propiedad en una o ms variables,
declrelas Private (Visual Basic) para que ningn otro cdigo pueda tener acceso a ellas.
Cifrado. Almacene todos los datos sensibles en un formulario cifrado en lugar de en texto
sin formato. Si un cdigo malintencionado obtiene acceso de algn modo a esa rea de
memoria, resulta ms difcil utilizar los datos. El cifrado tambin es til si es necesario
serializar los datos sensibles.
Restablecimiento. Cuando se termina la clase, estructura o mdulo que define la
propiedad, restablezca los datos sensibles a los valores predeterminados o a otros valores
sin significado. Esto proporciona una proteccin adicional cuando esa rea de memoria se
libera para el acceso general.
Persistencia. No conserve ningn dato sensible, por ejemplo en disco, si puede evitarlo.
Tampoco escriba ningn dato sensible en el Portapapeles.
El modificador WriteOnly se puede utilizar en este contexto:
Property (Instruccin)

Xor (Operador, Visual Basic)
Realiza una exclusin lgica entre dos expresiones de tipo Boolean o bien una exclusin bit a bit
entre dos expresiones numricas.
result = expression1 Xor expression2

Partes

result
Obligatorio. Cualquier variable numrica o de tipo Boolean. Para la comparacin
booleana, result es la exclusin lgica (disyuncin lgica exclusiva) de dos
valores Boolean. Para las operaciones bit a bit, result es un valor numrico que representa
la exclusin bit a bit (disyuncin bit a bit exclusiva) de dos modelos de bits numricos.
expression1
Obligatorio. Cualquier expresin numrica o de tipo Boolean.
expression2
Obligatorio. Cualquier expresin numrica o de tipo Boolean.

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
Para la comparacin booleana, result es True si y slo si uno de los
argumentos expression1 y expression2 se evala exactamente en True, es decir, s y slo si los
argumentos expression1 yexpression2 se evalan en valores Boolean opuestos. La tabla siguiente
ilustra cmo se determina el argumento result.
Si expression1 es: Y expression2 es El valor de result es
True True False
True False True
False True True
False False False
Para operaciones bit a bit, el operador Xor realiza una comparacin bit a bit de los bits ubicados de
manera idntica en dos expresiones numricas y establece el bit correspondiente enresult de
acuerdo con la siguiente tabla.
Si el bit de expression1 es... Y el bit de expression2 es... El bit de result es...
1 1 0
1 0 1
0 1 1
0 0 0
Por ejemplo, 5 Xor 3 es 6. Para saber por qu, convierta 5 y 3 en sus representaciones binarias,
101 y 011. A continuacin, utilice la tabla anterior para determinar que 101 Xor 011 es 110, que es
la representacin binaria del nmero 6 decimal.
Tipos de datos
Si los operandos constan de una expresin Boolean y una expresin numrica, Visual Basic
convierte la expresin Boolean a un valor numrico (1 para True y 0 para False), y realiza una
operacin bit a bit.
Para una comparacin Boolean, el tipo de datos del resultado es Boolean. Para una comparacin
bit a bit, el tipo de datos del resultado es un tipo numrico adecuado para los tipos de datos
de expression1 y expression2. Vea la tabla "Comparaciones relacionales y bit a bit" en Tipos de
datos de resultados de operador.
Sobrecarga
El operador Xor se puede sobrecargar, lo que significa que una clase o una estructura pueden
definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Si el cdigo utiliza este operador en una clase o estructura de este tipo, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el ejemplo siguiente se usa el operador Xor para realizar una exclusin lgica (disyuncin
lgica exclusiva) entre dos expresiones. El resultado ser un valor de tipo Boolean que indicar
exactamente si una de las dos expresiones es True.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Xor b > c
secondCheck = b > a Xor b > c
thirdCheck = b > a Xor c > b
El ejemplo anterior genera unos resultados de False, True y False, respectivamente.
En el ejemplo siguiente se usa el operador Xor para realizar una exclusin lgica (disyuncin
lgica exclusiva) en los bits individuales de dos expresiones numricas. El bit en el modelo
resultante se establece si uno de los bits correspondientes de los operandos se ha establecido en
1 exactamente.
Dim a As Integer = 10 ' 1010 in binary
Dim b As Integer = 8 ' 1000 in binary
Dim c As Integer = 6 ' 0110 in binary
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Xor b) ' 2, 0010 in binary
secondPattern = (a Xor c) ' 12, 1100 in binary
thirdPattern = (b Xor c) ' 14, 1110 in binary

El ejemplo anterior genera unos resultados de 2, 12 y 14, respectivamente.

#Const (Directiva)
Permite definir constantes de compilacin condicional para Visual Basic.

#Const constname = expression

Partes

constname
Requerido. String. Nombre de la constante que se define.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

expression
Requerido. Literal, otra constante de compilacin condicional o cualquier combinacin que
incluya operadores aritmticos o lgicos, excepto Is.
Comentarios
Las constantes de compilacin condicional son siempre privadas para el archivo en que aparecen.
No es posible crear constantes de compilacin pblicas con la directiva #Const, esto slo es
posible en la interfaz de usuario o con la opcin de compilador /define.
En expression solamente pueden utilizarse constantes de compilacin condicional y literales. El
uso de una constante estndar definida con Const produce un error. A la inversa, las constantes
definidas con la palabra clave #Const solamente pueden utilizarse para la compilacin condicional.
Tambin es posible que las constantes no estn definidas, en cuyo caso su valor es Nothing.
Ejemplo
En el ejemplo siguiente se utiliza la directiva #Const.
#Const MyLocation = "USA"
#Const Version = "8.0.0012"
#Const CustomerNumber = 36

#If...Then...#Else (Directivas)
Compila de forma condicional bloques de cdigo seleccionados de Visual Basic.
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If

Partes

expression
Requerida para las instrucciones #If y #ElseIf; en caso contrario, opcional. Cualquier
expresin formada exclusivamente por una o ms constantes de compilacin condicional,
literales y operadores, que se evala como True o False.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

statements
Requerida para el bloque de instruccin #If; en caso contrario, opcional. Lneas de
programa de Visual Basic o directivas de compilacin que se compilan si la expresin
asociada se evala como True.
#End If
Termina el bloque de instruccin #If.
Descripcin
Aparentemente, el comportamiento de las directivas #If...Then...#Else es el mismo que el de las
instrucciones If...Then...Else. Sin embargo, las directivas #If...Then...#Else evalan lo compilado
por el compilador, mientras que las instrucciones If...Then...Else evalan las condiciones en
tiempo de ejecucin.
La compilacin condicional se utiliza habitualmente para compilar el mismo programa para
plataformas distintas. Tambin se utiliza para evitar que el cdigo de depuracin aparezca en los
archivos ejecutables. El cdigo excluido durante una compilacin condicional se omite
completamente en el archivo ejecutable final, de modo que no tiene ningn efecto en el tamao ni
en el rendimiento.
Independientemente del resultado de la evaluacin, todas las expresiones se evalan
utilizando Option Compare Binary. La instruccin Option Compare no afecta a las expresiones
de las instrucciones #If y #ElseIf.
Nota
No existe ningn formulario de lnea nica de las directivas #If, #Else, #ElseIf y #End If. No puede aparecer
otro cdigo en la misma lnea que cualquiera de las directivas.

Ejemplo
En el siguiente ejemplo se utiliza el constructor #If...Then...#Else para determinar si se compilan
ciertas instrucciones.
#Const CustomerNumber = 36
#If CustomerNumber = 35 Then
' Insert code to be compiled for customer # 35.
#ElseIf CustomerNumber = 36 Then
' Insert code to be compiled for customer # 36.
#Else
' Insert code to be compiled for all other customers.
#End If

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

- (Operador, Visual Basic)
Devuelve la diferencia entre dos expresiones numricas o el valor negativo de una expresin
numrica.
expression1 expression2
- or -
expression1



Partes

expression1
Obligatoria. Cualquier expresin numrica.
expression2
Se requiere al menos que el operador est calculando un valor negativo. Cualquier
expresin numrica.
Resultado
El resultado es la diferencia entre expression1 y expression2 o el valor con signo negativo
de expression1.
El tipo de datos resultante es un tipo numrico adecuado para los tipos de datos
de expression1 y expression2. Vea las tablas "Aritmtica de enteros" en Tipos de datos de
resultados de operador.
Tipos admitidos
Todos los tipos numricos, incluidos los tipos de punto flotante sin signo y Decimal.
Descripcin
En la sintaxis anterior, la primera vez que se utiliza, el operador es el operador de resta
aritmtica binario que halla la diferencia entre dos expresiones numricas.
La segunda vez que se utiliza, el operador es el operador de negacin unario que halla el valor
negativo de una expresin. En este sentido, la negacin invierte el signo de expression1, por lo que
el resultado es positivo si expression1 es negativo.
Si alguna expresin se evala como Nothing, el operador la trata como si fuera cero.
Nota
El operador se puede sobrecargar, lo que significa que una clase o una estructura pueden definir de nuevo
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el cdigo utiliza este
operador en una clase o estructura de este tipo, asegrese de conocer su comportamiento redefinido. Para
obtener ms informacin, vea Procedimientos de operador.

Ejemplo
En el ejemplo siguiente se utiliza el operador para calcular y devolver la diferencia entre dos
nmeros; y, a continuacin, para negar un nmero.
Dim binaryResult As Double = 459.35 - 334.9
Dim unaryResult As Double = -334.9

Tras la ejecucin de estas instrucciones, binaryResult contiene 124.45 y unaryResult contiene -
334.90.

& (Operador, Visual Basic)
Genera la concatenacin de cadena de dos expresiones.
result = expression1 & expression2

Partes

result
Requerido. Cualquier variable String u Object.
expression1
Requerido. Cualquier expresin con un tipo de datos que se ample a String.
expression2
Requerido. Cualquier expresin con un tipo de datos que se ample a String.
Descripcin
Si el tipo de datos de expression1 o expression2 no es String, pero se ampla a String, se
convertir en String. Si uno de los tipo de datos no se ampla a String, el compilador generar un
error.
El tipo de datos de result ser String. Si una o ambas expresiones dan como resultado Nothing o
tienen un valor System.DBNull.Value, se consideran como una cadena con un valor "".
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Nota
El operador & se puede sobrecargar, lo que significa que una clase o una estructura pueden definir de nuevo
su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el cdigo utiliza este
operador en una clase o estructura de este tipo, asegrese de conocer su comportamiento redefinido. Para
obtener ms informacin, veaProcedimientos de operador.

Ejemplo
En este ejemplo se usa el operador & para forzar la concatenacin de cadenas. El resultado es un
valor de cadena que representa la concatenacin de ambos operandos.
Dim sampleStr As String
sampleStr = "Hello" & " World"
' The preceding statement sets sampleStr to "Hello World".
..
&= (Operador, Visual Basic)
Concatena una expresin String a una variable o propiedad String y asigna el resultado a la
variable o propiedad.
variableorproperty &= expression

Partes

variableorproperty
Requerido. Cualquier propiedad o variable de tipo String.
expression
Requerido. Cualquier expresin de tipo String.
Descripcin
El elemento situado a la izquierda del operador &= puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador &= asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Sobrecarga
El operador & (Operador, Visual Basic) se puede sobrecargar, lo que significa que una clase o una
estructura pueden definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha
clase o estructura. La sobrecarga del operador & afecta al comportamiento del operador &=. Si el
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

cdigo utiliza &= en una clase o estructura que sobrecarga &, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el siguiente ejemplo se utiliza el operador &= para concatenar dos variables String y asignar el
resultado a la primera variable.
Dim var1 As String = "Hello "
Dim var2 As String = "World!"
var1 &= var2
' The value of var1 is now "Hello World!".

* (Operador, Visual Basic)
Multiplica dos nmeros.
number1 * number2

Partes

number1
Obligatorio. Cualquier expresin numrica.
number2
Obligatorio. Cualquier expresin numrica.
Resultado
El resultado es el producto de number1 y number2.
Tipos admitidos
Todos los tipos numricos, incluidos los tipos de punto flotante y sin signo, y Decimal.
Descripcin
El tipo de datos del resultado depende de los tipos de los operandos. La tabla siguiente muestra
cmo se determina el tipo de datos del resultado.
Tipos de datos del operando Tipo de datos del resultado
Ambas expresiones son tipos de datos integrales Un tipo de dato numrico
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

(SByte, Byte, Short, UShort, Integer,UInteger, Long, ULong) adecuado para los tipos de
datos de number1 y number2.
Vea las tablas "Aritmtica de
enteros" en Tipos de datos de
resultados de operador.
Ambas expresiones son Decimal Decimal
Ambas expresiones son Single Single
Una expresin es un tipo de datos de punto flotante
(Single o Double) pero no ambasSingle (observe
que Decimal no es un tipo de datos de punto flotante)
Double
Si una expresin da como resultado Nothing, se tratar como si fuera cero.
Sobrecarga
El operador * se puede sobrecargar, lo que significa que una clase o una estructura pueden definir
de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el
cdigo utiliza este operador en una clase o estructura de este tipo, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En este ejemplo se usa el operador * para multiplicar dos nmeros. El resultado ser el producto
de dos operandos.
Dim testValue As Double
testValue = 2 * 2
' The preceding statement sets testValue to 4.
testValue = 459.35 * 334.9
' The preceding statement sets testValue to 153836.315.
....
*= (Operador, Visual Basic)
Multiplica el valor de una variable o una propiedad por el valor de una expresin y asigna el
resultado a la variable o la propiedad.

variableorproperty *= expression

Partes

variableorproperty
Requerido. Cualquier propiedad o variable numrica.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

expression
Requerido. Cualquier expresin numrica.
Descripcin
El elemento situado a la izquierda del operador *= puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador *= asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Sobrecarga
El operador * (Operador, Visual Basic) se puede sobrecargar, lo que significa que una clase o una
estructura pueden definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha
clase o estructura. La sobrecarga del operador * afecta al comportamiento del operador *=. Si el
cdigo utiliza *= en una clase o estructura que sobrecarga *, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el siguiente ejemplo se utiliza el operador *= para multiplicar una variable Integer por otra y
asignar el resultado a la primera variable.
Dim var1 As Integer = 10
Dim var2 As Integer = 3
var1 *= var2
' The value of var1 is now 30.

/ (Operador, Visual Basic)
Divide dos nmeros y devuelve un resultado de punto flotante.
expression1 / expression2

Partes

xpression1
Obligatorio. Cualquier expresin numrica.
expression2
Obligatorio. Cualquier expresin numrica.
Tipos admitidos
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Todos los tipos numricos, incluidos los tipos de punto flotante, sin signo y Decimal.
Resultado
El resultado es el cociente completo de expression1 dividido por expression2, incluido cualquier
resto.
\ (Operador) devuelve el cociente entero, que omite el resto.
Descripcin
El tipo de datos del resultado depende de los tipos de los operandos. En la tabla siguiente se
muestra cmo se determina el tipo de datos del resultado.
Tipos de datos de operando Tipo de datos
de resultado
Ambas expresiones son tipos de datos enteros
(SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong)
Double
Ambas expresiones son del tipo de datos Decimal Decimal
Ambas expresiones son de String (Tipo de datos, Visual Basic) Single
Cualquier expresin es un tipo de datos de punto flotante (String (Tipo de datos,
Visual Basic) o Double (Tipo de datos, Visual Basic))
Double
Antes de que se realice la divisin, cualquier expresin numrica entera se ampla a Double. Si
asigna el resultado a un tipo de datos entero, Visual Basic intenta convertir el resultado
deDouble a ese tipo. Esto puede producir una excepcin si el resultado no se ajusta a ese tipo.
Vea en particular "Divisin por cero intentada" en esta pgina de Ayuda.
Si se evala expression1 o expression2 como Nothing, se trata como si fuese cero.
Divisin por cero intentada
Si se evala expression2 como cero, el operador / se comporta de manera diferente para los
distintos tipos de datos de operando. En la siguiente tabla se muestran los posibles
comportamientos.
Tipos de datos de
operando
Comportamiento si expression2 es cero
Punto flotante
(Single oDouble)
Devuelve infinito (PositiveInfinity o NegativeInfinity) o NaN (no es un
nmero) si expression1 tambin es cero
Decimal Produce DivideByZeroException
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Entero (con signo o
sin signo)
La conversin intentada recuperando el tipo integral produce
una OverflowException porque los tipos integrales no pueden
aceptar PositiveInfinity,NegativeInfinity ni NaN

Ejemplo
En este ejemplo se usa el operador / para realizar una divisin de punto flotante. El resultado ser
el cociente de ambos operandos.
Dim resultValue As Double
resultValue = 10 / 4
resultValue = 10 / 3
Las expresiones en el ejemplo anterior devuelven valores de 2,5 y 3,333333. Observe que el
resultado es siempre de punto flotante (Double), aunque ambos operandos sean constantes
enteras.

/= (Operador, Visual Basic)
Divide el valor de una variable o una propiedad por el valor de una expresin y asigna el resultado
de punto flotante a la variable o la propiedad.
variableorproperty /= expression


Partes
variableorproperty
Requerido. Cualquier propiedad o variable numrica.
expression
Requerido. Cualquier expresin numrica.
Descripcin
El elemento situado a la izquierda del operador /= puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador /= asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Esta instruccin asigna un valor Double a la variable o la propiedad del lado izquierdo. Si Option
Strict es On, variableorproperty debe ser Double. Si Option Strict es Off, Visual Basic realiza una
conversin implcita y asigna el valor resultante a variableorproperty, con un posible error en tiempo
de ejecucin. Para obtener ms informacin, vea Conversiones de ampliacin y de
restriccin y Option Strict (Instruccin).
Sobrecarga
El operador / (Operador, Visual Basic) se puede sobrecargar, lo que significa que una clase o una
estructura pueden definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha
clase o estructura. La sobrecarga del operador / afecta al comportamiento del operador /=. Si el
cdigo utiliza /= en una clase o estructura que sobrecarga /, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el siguiente ejemplo se utiliza el operador /= para dividir una variable Integer por otra y asignar
el cociente a la primera variable.
Dim var1 As Integer = 12
Dim var2 As Integer = 3
var1 /= var2
' The value of var1 is now 4.

\ (Operador)
Divide dos nmeros y devuelve un resultado de nmero entero.
expression1 \ expression2

Partes
expression1
Obligatorio. Cualquier expresin numrica.
expression2
Obligatorio. Cualquier expresin numrica.
Tipos admitidos
Todos los tipos numricos, incluidos los tipos de punto flotante, sin signo y Decimal.
Resultado
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

El resultado es el cociente entero de expression1 dividido por expression2 que descarta cualquier
resto y conserva slo la parte entera. Esto se conoce como truncado.
El tipo de datos resultante es un tipo numrico adecuado para los tipos de datos
de expression1 y expression2. Vea las tablas "Aritmtica de enteros" en Tipos de datos de
resultados de operador.
/ (Operador, Visual Basic) devuelve el cociente completo que conserva el resto en la parte decimal.
Descripcin
Antes de realizar la divisin, Visual Basic intenta convertir cualquier expresin numrica de punto
flotante en Long. Si Option Strict es On, se produce un error del compilador. Si Option
Strict es Off, es posible que se produzca OverflowException si el valor est fuera del intervalo
de Long (Tipo de datos, Visual Basic). La conversin a Long tambin est sujeta al redondeo
bancario. Para obtener ms informacin, vea "Partes decimales" en Funciones de conversin de
tipos.
Si se evala expression1 o expression2 como Nothing, se trata como si fuese cero.
Divisin por cero intentada
Si se evala expression2 a cero, el operador \ produce una excepcin DivideByZeroException.
Esto es verdad para todos los tipos de datos numricos de los operandos.
Nota
El operador \ se puede sobrecargar, lo que significa que una clase o una estructura pueden definir de nuevo
su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el cdigo utiliza este
operador en una clase o estructura de este tipo, asegrese de conocer su comportamiento redefinido. Para
obtener ms informacin, veaProcedimientos de operador.

Ejemplo
En el siguiente ejemplo se usa el operador \ para realizar una divisin de entero. El resultado ser
un nmero entero que representa el cociente entero de ambos operandos, rechazando el resto.
Dim resultValue As Integer
resultValue = 11 \ 4
resultValue = 9 \ 3
resultValue = 100 \ 3
resultValue = 67 \ -3

Las expresiones en el ejemplo anterior devuelven valores de 2, 3, 33 y -22 respectivamente.

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

\= (Operador)
Divide el valor de una variable o una propiedad por el valor de una expresin y asigna el resultado
entero a la variable o la propiedad.
variableorproperty \= expression

Partes
variableorproperty
Requerido. Cualquier propiedad o variable numrica.
expression
Requerido. Cualquier expresin numrica.
Descripcin
El elemento situado a la izquierda del operador \= puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador \= asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Para obtener ms informacin sobre divisin de enteros, vea \ (Operador).
Sobrecarga
El operador \ se puede sobrecargar, lo que significa que una clase o una estructura pueden definir
de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. La
sobrecarga del operador \ afecta al comportamiento del operador \=. Si el cdigo utiliza \= en una
clase o estructura que sobrecarga \, asegrese de conocer su comportamiento redefinido. Para
obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el siguiente ejemplo se utiliza el operador \= para dividir una variable Integer por otra y asignar
el resultado entero a la primera variable.
Dim var1 As Integer = 10
Dim var2 As Integer = 3
var1 \= var2
' The value of var1 is now 3.

Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

^ (Operador, Visual Basic)
Eleva un nmero a la potencia indicada por otro.
number ^ exponent

Partes
number
Obligatoria. Cualquier expresin numrica.
exponent
Obligatoria. Cualquier expresin numrica.
Resultado
El resultado es number elevado a la potencia de exponent, siempre como un valor Double.
Tipos admitidos
Double. Operandos de cualquier tipo diferente se convierten a Double.
Descripcin
Visual Basic siempre realiza la exponenciacin en Double (Tipo de datos, Visual Basic).
El valor de exponent puede ser fraccionario, negativo o ambos.
Cuando se realizan varias exponenciaciones en una nica expresin, el operador ^ se evala a
medida que se va encontrando de izquierda a derecha.
Nota
El operador ^ se puede sobrecargar, lo que significa que una clase o una estructura pueden definir de nuevo
su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el cdigo utiliza este
operador en una clase o estructura de este tipo, asegrese de conocer su comportamiento redefinido. Para
obtener ms informacin, veaProcedimientos de operador.

Ejemplo
En el ejemplo siguiente se utiliza el operador ^ para elevar un nmero a la potencia del exponente.
El resultado ser el primer operando a la potencia del segundo.
Dim exp1, exp2, exp3, exp4, exp5, exp6 As Double
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

exp1 = 2 ^ 2
exp2 = 3 ^ 3 ^ 3
exp3 = (-5) ^ 3
exp4 = (-5) ^ 4
exp5 = 8 ^ (1.0 / 3.0)
exp6 = 8 ^ (-1.0 / 3.0)

En el ejemplo anterior los resultados son:
exp1 se establece en 4 (2 al cuadrado).
exp2 se establece en 19683 (3 al cubo; a continuacin, ese valor se eleva al cubo).
exp3 se establece en -125 (-5 al cubo).
exp4 se establece en 625 (-5 elevado a la cuarta).
exp5 se establece en 2 (raz cbica de 8).
exp6 se establece en 0,5 (1,0 dividido por la raz cbica de 8).
Observe la importancia de los parntesis en las expresiones del ejemplo anterior. Debido a
la prioridad de operadores, Visual Basic normalmente calcula el operador ^ antes de cualquier otro,
antes incluso que el operador unario . Si exp4 y exp6 se hubieran calculado sin parntesis,
habran generado los resultados siguientes:
exp4 = -5 ^ 4 se calcularan como - (5 elevado a cuatro), cuyo resultado sera -625.
exp6 = 8 ^ -1.0 / 3.0 se calculara como (8 elevado a 1 o 0,125) dividido entre 3,0, cuyo resultado
sera 0,041666666666666666666666666666667.

^= (Operador, Visual Basic)
Eleva el valor de una variable o una propiedad a la potencia de una expresin y asigna el resultado
de nuevo a la variable o la propiedad.
variableorproperty ^= expression

Partes

variableorproperty
Requerido. Cualquier propiedad o variable numrica.
expression
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Requerido. Cualquier expresin numrica.
Descripcin
El elemento situado a la izquierda del operador ^= puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador ^= asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Visual Basic siempre realiza la exponenciacin en Double (Tipo de datos, Visual Basic). Los
operandos de cualquier tipo diferente se convierten en Double y el resultado siempre es Double.
El valor de expression puede ser fraccionario, negativo o ambos.
Sobrecarga
El operador ^ (Operador, Visual Basic) se puede sobrecargar, lo que significa que una clase o una
estructura pueden definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha
clase o estructura. La sobrecarga del operador ^ afecta al comportamiento del operador ^=. Si el
cdigo utiliza ^= en una clase o estructura que sobrecarga ^, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el siguiente ejemplo se utiliza el operador ^= para elevar el valor de una variable Integer a la
potencia de una segunda variable y asignar el resultado a la primera variable.
Dim var1 As Integer = 10
Dim var2 As Integer = 3
var1 ^= var2
' The value of var1 is now 1000.
..
+ (Operador, Visual Basic)
Suma dos nmeros o devuelve el valor positivo de una expresin numrica. Tambin se puede
utilizar para concatenar dos expresiones de cadena.

expression1 + expression2
- or -
+ expression1

Partes

expression1
Obligatorio. Cualquier expresin numrica o de cadena.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

expression2
Obligatorio a menos que el operador + est calculando un valor negativo. Cualquier
expresin numrica o de cadena.
Resultado
Si expression1 y expression2 son ambos numricos, el resultado es su suma aritmtica.
Si expression2 est ausente, el operador + es el operador de identidad unario para el valor sin
modificar de una expresin. En este sentido, la operacin trata de conservar el signo
deexpression1, por lo que el resultado es negativo si expression1 es negativo.
Si expression1 y expression2 son ambas cadenas, el resultado es la concatenacin de sus valores.
Si expression1 y expression2 son de tipos mixtos, la accin realizada depende de sus tipos, su
contenido y la configuracin de Option Strict (Instruccin). Para obtener ms informacin, vea las
tablas en "Comentarios".
Tipos admitidos
Todos los tipos numricos, incluidos los tipos de punto flotante y sin signo, Decimal y String.
Descripcin
En general, + realiza la suma aritmtica cuando es posible y slo concatena cuando ambas
expresiones son cadenas.
Si ninguna de las expresiones es Object, Visual Basic realiza las acciones siguientes.
Tipos de datos de expresiones Accin del compilador
Ambas expresiones son tipos de datos numricos
(SByte, Byte, Short,UShort, Integer, UInteger, Long, ULong, Deci
mal, Single o Double)
Sumar. El tipo de datos
resultante es un tipo
numrico adecuado para
los tipos de datos
de expression1 yexpressio
n2. Vea las tablas
"Aritmtica de enteros"
en Tipos de datos de
resultados de operador.
Ambas expresiones son de tipo String Deber concatenar.
Una expresin es numrica y la otra es una cadena Si Option Strict es On,
generar un error del
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

compilador.
Si Option Strict es Off,
convertir
implcitamente String en
Double y sumar.
Si String no puede
convertirse en Double,
producir una
excepcin InvalidCastExc
eption.
Una expresin es numrica y la otra es Nothing (Visual Basic) Sumar,
con Nothing evaluado
como cero.
Una expresin es una cadena y la otra es Nothing Concatenar,
con Nothing evaluado
como " ".
Si una de las expresiones es Object, Visual Basic realiza las acciones siguientes.
Tipos de datos de expresiones Accin del compilador
Object expresin que contiene un valor
numrico y la otra es un tipo de datos
numrico
Si Option Strict es On, generar un error del compilador.
Si Option Strict es Off, sumar.
Object expresin que contiene un valor
numrico y la otra es de tipo String
Si Option Strict es On, generar un error del compilador.
Si Option Strict es Off, convertir
implcitamente String en Double y sumar.
Si String no puede convertirse en Double, producir una
excepcin InvalidCastException.
Object expresin que contiene una
cadena y la otra es un tipo de datos
numrico
Si Option Strict es On, generar un error del compilador.
Si Option Strict es Off, convertir implcitamente la
cadena Object en Double y sumar.
Si la cadena Object no puede convertirse en Double,
producir una excepcinInvalidCastException.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Object expresin que contiene una
cadena y la otra es de tipo String
Si Option Strict es On, generar un error del compilador.
Si Option Strict es Off, convertir
implcitamente Object en String y concatenar.
Si ambas son expresiones Object, Visual Basic realiza las acciones siguientes (slo Option Strict
Off).
Tipos de datos de expresiones Accin del compilador
Ambas expresiones Object contienen
valores numricos
Deber agregar.
Ambas expresiones Object son de
tipo String
Deber concatenar.
Una expresin Object contiene un valor
numrico y la otra, una cadena
Convertir implcitamente la cadena Object en Double y
sumar.
Si la cadena Object no puede convertirse en un valor
numrico, producir una
excepcin InvalidCastException.
Si una de las expresiones Object se evala como Nothing o DBNull, el operador + la trata
como String con un valor de " ".
Nota
Cuando utilice el operador +, puede que no logre determinar si se producir una suma o bien una
concatenacin de cadenas. Use el operador & de concatenacin para eliminar ambigedades y ofrecer cdigo
autoexplicativo.
Sobrecarga
El operador + se puede sobrecargar, lo que significa que una clase o una estructura pueden definir
de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el
cdigo utiliza este operador en una clase o estructura de este tipo, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el ejemplo siguiente se usa el operador + para sumar nmeros. Si los operandos son ambos
numricos, Visual Basic calcula el resultado aritmtico. El resultado aritmtico representa la suma
de ambos operandos.
Dim sumNumber As Integer
sumNumber = 2 + 2
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
El operador + tambin puede utilizarse para concatenar cadenas. Si los operandos son ambos
cadenas, Visual Basic los concatena. El resultado de la concatenacin representa una cadena
nica que consta del contenido de los dos operandos uno tras otro.
Si los operandos son de tipos mixtos, el resultado depende de la configuracin de Option Strict
(Instruccin). El ejemplo siguiente ilustra el resultado cuando Option Strict es On.
Option Strict On

Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
... ' The preceding statement generates a COMPILER ERROR.
El ejemplo siguiente ilustra el resultado cuando Option Strict es Off.
Option Strict Off
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
' The preceding statement returns 40 after the string in var1 is
' converted to a numeric value. This might be an unexpected result.
' We do not recommend use of Option Strict Off for these operations.
Para eliminar la ambigedad, debera utilizar al operador & en lugar de + para la concatenacin.

+= (Operador, Visual Basic)
Suma el valor de una expresin numrica al valor de una propiedad o variable numrica y asigna el
resultado a la variable o a la propiedad. Tambin se puede utilizar para concatenar una
expresin String con una propiedad o variable String y asignar el resultado a la variable o a la
propiedad.
variableorproperty += expression

Partes

variableorproperty
Obligatoria. Cualquier propiedad o variable String numrica.
expression
Obligatoria. Cualquier expresin numrica o String.
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

Descripcin
El elemento situado a la izquierda del operador += puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador += asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Este operador de asignacin realizar implcitamente conversiones de ampliacin pero no de
restriccin si el entorno de compilacin fuerza una semntica estricta. Para obtener ms
informacin sobre estas conversiones, vea Conversiones de ampliacin y de restriccin. Para
obtener ms informacin sobre semnticas de tipos permisivas y estrictas, vea Option Strict
(Instruccin).
Si se permite una semntica de tipos permisiva, el operador += realizar de forma implcita una
serie de conversiones de cadenas o conversiones numricas idnticas a las que lleva a cabo el
operador +. Para obtener informacin detallada sobre estas conversiones, vea + (Operador, Visual
Basic).
Nota
Cuando utilice el operador +=, quizs no logre determinar si se producir una suma o una concatenacin de
cadenas. Use el operador &= de concatenacin para eliminar ambigedades y ofrecer cdigo autoexplicativo.
Sobrecarga
El operador + se puede sobrecargar, lo que significa que una clase o una estructura pueden definir
de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. La
sobrecarga del operador + afecta al comportamiento del operador +=. Si el cdigo utiliza += en una
clase o estructura que sobrecarga +, asegrese de conocer su comportamiento redefinido. Para
obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el ejemplo siguiente se utiliza el operador += para combinar el valor de una variable con otra. La
primera parte utiliza += con variables numricas para sumar un valor a otro. La segunda parte
utiliza += con variables String para concatenar un valor con otro. En ambos casos, el resultado se
asigna a la primera variable.
' This part uses numeric variables.
Dim num1 As Integer = 10
Dim num2 As Integer = 3
num1 += num2

' This part uses string variables.
Dim str1 As String = "10"
Dim str2 As String = "3"
str1 += str2

El valor de num1 es ahora 13 y el valor de str1 es ahora "103".
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0


= (Operador, Visual Basic)
Asigna un valor a una variable o propiedad.
variableorproperty = value
Partes
variableorproperty
Cualquier variable o propiedad que se puede escribir.
value
Cualquier literal, constante o expresin.

Descripcin
El elemento situado a la izquierda del signo igual (=) puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador = asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Nota
El operador = tambin se utiliza como operador de comparacin. Para obtener informacin detallada,
vea Operadores de comparacin (Visual Basic).
Sobrecarga
El operador = slo se puede sobrecargar como un operador de comparacin relacional, no como
un operador de asignacin. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
El ejemplo siguiente muestra el operador de asignacin. El valor de la derecha se asigna a la
variable de la izquierda.
Dim testInt As Integer
Dim testString As String
Dim testButton As System.Windows.Forms.Button
Dim testObject As Object
testInt = 42
testString = "This is an example of a string literal."
testButton = New System.Windows.Forms.Button()
testObject = testInt
Palabras Clave de Visual Basic 2010


Fuente: http://msdn.microsoft.com/es-es/library/ksh7h19t(v=VS.80).aspx
1

d
e

e
n
e
r
o

d
e

2
0
1
0

testObject = testString
testObject = testButton
....
-= (Operador, Visual Basic)
Sustrae el valor de una expresin del valor de una variable o propiedad y asigna el resultado a la
variable o propiedad.
variableorproperty -= expression

Partes

variableorproperty
Requerido. Cualquier propiedad o variable numrica.
expression
Requerido. Cualquier expresin numrica.
Descripcin
El elemento situado a la izquierda del operador -= puede ser una variable escalar simple, una
propiedad o un elemento de una matriz. La variable o la propiedad no pueden ser ReadOnly
(Visual Basic). El operador -= asigna el valor situado a su derecha a la variable o la propiedad
situada a su izquierda.
Sobrecarga
El operador - (Operador, Visual Basic) se puede sobrecargar, lo que significa que una clase o una
estructura pueden definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha
clase o estructura. La sobrecarga del operador - afecta al comportamiento del operador -=. Si el
cdigo utiliza -= en una clase o estructura que sobrecarga -, asegrese de conocer su
comportamiento redefinido. Para obtener ms informacin, vea Procedimientos de operador.
Ejemplo
En el siguiente ejemplo se utiliza el operador -= para sustraer una variable Integer de otra y
asignar el resultado a la ltima variable.
Dim var1 As Integer = 10
Dim var2 As Integer = 3
var1 -= var2
' The value of var1 is now 7.

También podría gustarte