Professional Documents
Culture Documents
Cap 2 - Visual NET - Francesco Balena
Cap 2 - Visual NET - Francesco Balena
1234567890
Iniciadores
En Visual Basic NET pods clara e iniciar una variable uilizando ta misma insruccin Esta funciGn,
largamente esperada, le permitir simplificar su e6digo y mejorar su leg
\ Dos ejemplos de inicielisagores de vartables
Dim anchura As Single = 1800
Dis lonbre As string = =ranceaco™
{Las lineas anteriores son funcionalmente equivalents al siguiente c6digo de Visual Basic 6:
‘Rim Nore Ae string! nonbre s "rranceacot
Observe que slo pode inicalizar una variable sies la Gnica variable declarada en la intruccién Dim,
Public o Private:
Sr ta siguiente 1ines no ae compite
Din x yf As bong = 2
Una earactert
2 de los Ini
tres es gue los valores qu se asignen no necesitan ser constants
Din Fechatntolal As Date = nowt)
‘Cédigo mas breve con los iniciadores
Los iniiadoresresutn especimente les para ls variables de nivel clas y ls variables gloales, Por
ciemplo, pense en la siguiente clase de Visual Basic, que contiene una propiedad Public que ae inilalica
en el suceso Class_liialize:
{ste es cédige VE6~ no 20 afecstark en VB WET
uédulo de ta clase Persone
pastie fais As String
Caphulo 2 Modulos y varabes 75
Private fib clase toitializet
‘"Propoccicna in valor predeterninago para 1a propledad Pate
ot Sib
Pod logrr el mismo resultado en Visual Basic .NET con una tnicainstruccién:
Public Pais As string = cusa*
De forma similar, piense en el. c6digo que tendrfa que utilizar en Visual Base 6 par nici de forma
correcta una variable global definida en un médulo:
5 sv» pato as cddigo VBE - no 0 efecutard en ve wer.
Public Fechazcicial Ar Date
sub tata)
‘ Froperciona un valor inicial para ie variable Fechatnicie’,
a Sab e
Los iniiadores de Visual Basic .NET le permitirin fusionar la declaraciGn y le asignacién en una
snismainsiucién:
Nogute woduloprineipal
Public Pechalnicis! As Date = now!)
od Hale
Finalmente os inisiadoresresultan especialmente dies con variables de blogue para garantzar que la
variable se reinicia de la forma correcta adoptando un determinado valor siempre queel fj del programa
‘yeelvaa entrar en el Bloque, Este es el nico caso en el que tiene sentido utilizar iniciadores para asignar a
‘una variable su valor predterminado (0 para admeros, cadenas vacis para variables String, et)
Forze ited
* Garantiaa que 1a ¥ aanpre contenza deste cero.
piny Ae lao = 0
ext!
Inictadores y variables Object
‘Los inciadoes también trabajan con variables que almacenen referencias a objeto Por ejemplo, las sic
‘vente insucciones declaran y crean un objeto DaraSet de ADO.NET:
Din és As syoten.bete.oavaset
(48's ow syaven batecoaeasee
Pdr abreviar el eigen Ia siguiente forma:
Dim de As Syoten.Data.Dacasar = Hew Syste Data.Dataset,
Inclaso mejores que Visual Basic INET permite el empleo de uns siti epecial con la que podeé
lina nombre repetigo de una case:
Di ds As now syaten.Date
©0080 08S0HOHOOH8HOGHHOHHHOOHHHBOOHOOOE©0800 F89S0H8O9HOSO8O0OHOO8SSOH8888
76 Programacin avarcaa con Mirosoft Visual Basie NET
La instucein anterior recuerda las declaraciones de Visual Basic 6, pero no deje que el parecio le
onfands, En as versiones aro de lengua I sntxis AS New een ana vale de ajo ou
instanciada el compilador genera c6digo que comprucba esta variable ante de hacer referencia ala misma
{era automécieamente un objeto del tio correspondiente si se comprucba que et valor dela variable es
Nothing
‘Como consecuencia, no se crear un objeto si no se ega a hacer referencia ala variable durant ef flujo
de ejecucin.
En Visual Basie NET la anterior instruccin es. simplemente, una forma especial de iniciador de
variable y siempre se cearé un objeto cuando se ejecue la instraccién Dim, Visual Basic NET no permite
tlempleo dela sintxis que se coresponde con ia autoinstanciacin de variables uilizada en Visual Ba-
sic 6.
{Los inieiadores también permiten el empleo de consructores de objetos que acepten parémetros (anali-
zargel tema de los constructores en el Capitulo 4). Por ejemplo, el constructor del objeto DataSet permite
tlempleo de un ergumento de cadena al que le pod pasar el nombre del propio objeto DataSet:
Dim as As tow systen. Data, atasee(“RAitores")
Asignaciones
En genera asignt valores «ls wasabies ly como to haa en Visual Base yen lt verone
“anteriores del lenguaje. Sin embargo, I forma en que tended que realizar las conversionesenite ls dstin~
tos tpos y le forma en que debert asignar variables de objeto han cambiado dristicamente bajo Visual
Basie NET.
La Instruccién Option Strict
‘Un defecto de Visual Basie que muchos detratores han mencionado era la ausencia total de control en as
conversiones realizadar sobre los ditintos tipos. Por ejemplo, en Visual Basic 6 el siguiente igo es
perfectamente legal:
ins As Single, & As double
3
Et problema relacionado con el eédigo anterior es que cuando asigna una expresin o una variable Double a
tuna variable Single, estardperdiendo precisién y puede, incluso, provocar un eror de desbordamiento. Este
tipo de conversion tambign recibe el nombre de conversin de resricidn. Otros ejemplos de conversiones
de restriceién son de Long a Integer 0 a Byte, o desde Double a Long. Una conversién en la direccién
‘opuesta (por ejemplo, desde Single a Double) recibe el nombre de conversin por ampliacén,y siempre se
permite porque no puede penler precsién ni eausar erores de desbordamiento,
‘Visual Basic NET permite el empleo de Ia aveva diectiva de compitador Option Strict, que pods
definie como On para desactivar ls canversiones implicitas de restrieciGn. Por ejemplo, el eédig siguiente
no se compilars:
option 5:
Modute aixdute
Sra. Gsnveesién de restriesiéa que provoca un error de conpLlacién
Captle 2: Méduos y varies 77
‘Observe que puede omit la palabra clave On porque Option Strict es suiciente para activar esta caracte-
istic, No necesitard inclur esta drectiva en todos sus médulos porque podeé configurar esta opcién a
ive proyecto wtlizando el cuadco de didlogo Pigina de propiedades del proyecto (vEase la Figura 2-5).
De forma predeterminada, Option Strict se encuentea definida a nivel proyecto como Off, presumible-
mente para faciltar laimportaciGn de los proyectos de Visual Basic 6. Sin embargo, le sugiero encerecida-
‘mente que active esta opci, al menos para todos Sus nuevos proyectos, con el fn de que pueda aprovechie
al méximo esta nueva caractristca. Deberd gastar més tiempo escribiendo e6digo porque tended que
You might also like