Вы находитесь на странице: 1из 4

27/12/2015

CambiosimportantesdeVisualBasicenVisualStudio2012

Este artculo proviene de un motor de traduccin automtica. Mueva el puntero sobre las frases del artculo para ver el
texto original. Ms informacin.

Cambios importantes de Visual Basic en


Visual Studio 2012
Visual Studio 2012

La tabla siguiente se enumeran los cambios que podran impedir una aplicacin creada en Visual Basic 2010 de
compilacin en Visual Basic en Visual Studio 2012 y los cambios pueden cambiar el comportamiento en tiempo de
ejecucin de una aplicacin.

Categora

Problema

Descripcin

Inferencia
de tipos

En una
instruccin
return
donde es un
literal de
matriz el
operando, se
determina el
tipo de
matriz en
tiempo de
ejecucin de
la firma de la
funcin en
lugar de ser
inferido del
literal de
matriz.

Este cambio permite devolver un literal de matriz en los lugares antes de donde no
pudo, como se muestra en el ejemplo siguiente:
VB
FunctionGetArrayLiteral(ByValnumberAsInteger)AsInteger()
Ifnumber<0Then
'InVisualStudio2010,thisarrayliteralis
'isinferredtobeanarrayofobjects,which
'cannotbeconvertedtoanarrayofintegers.
'Inthecurrentversion,thisarrayliteralis
'inferredtobeanarrayofintegers,whichis
'thereturntypeofthefunction.
Return{}
Else
Return{number}
EndIf
EndFunction
Este cambio puede producir el tipo en tiempo de ejecucin de un literal de matriz que
era ms ancho que lo que era en Visual Basic 2010, como se muestra en el ejemplo
siguiente:
VB
PrivateSubArrayLiterals()
DimtheArray=GetArray()
Console.WriteLine(theArray.GetType().FullName)

https://msdn.microsoft.com/eses/LIBRARY/cc714070(d=printer,v=vs.110).aspx

1/4

27/12/2015

CambiosimportantesdeVisualBasicenVisualStudio2012

EndSub
PrivateFunctionGetArray()AsObject()
Return{"chromatic","infinitesimal"}
EndFunction
'Outputinthecurrentversion:
'System.Object[]
'OutputinVisualStudio2010:
'System.String[]

Expresiones
lambda

En una
expresin
For Each ,
ahora puede
usar la
variable de
control en
una
expresin
lambda.

El uso de una variable de iteracin For Each en una expresin lambda produce no ms
una advertencia en tiempo de compilacin y no ms resultados inesperados, como
muestra el ejemplo siguiente:
VB
DimmethodsAsNewList(OfAction)
ForEachwordIn{"hello","world"}
methods.Add(Sub()Console.Write(word&""))
Next
methods(0)()
methods(1)()
'Outputinthecurrentversion:
'helloworld
'OutputinVisualStudio2010:
'worldworld

Expresiones
LINQ

En una
expresin
For Each ,
ahora puede
usar la
variable de
control en
una
expresin
LINQ.

El uso de una variable de iteracin For Each en una expresin LINQ produce no ms
una advertencia en tiempo de compilacin y no ms resultados inesperados, como
muestra el ejemplo siguiente:
VB
DimlinesAsNewList(OfIEnumerable(OfString))
ForEachnumberIn{1,2,3}
Dimline=FromletterIn{"a","b","c"}
Selectnumber.ToString&letter
lines.Add(line)
Next
ForEachlineInlines
ForEachentryInline
Console.Write(entry&"")
Next

https://msdn.microsoft.com/eses/LIBRARY/cc714070(d=printer,v=vs.110).aspx

2/4

27/12/2015

CambiosimportantesdeVisualBasicenVisualStudio2012

Console.WriteLine()
Next
'Outputinthecurrentversion:
'1a1b1c
'2a2b2c
'3a3b3c
'OutputinVisualStudio2010:
'3a3b3c
'3a3b3c
'3a3b3c

Resolucin
de
sobrecarga

Si dos
sobrecargas
con la
coincidencia
genrica de
los
parmetros
de tipo del
llamador un
receptor de
papel
igualmente
pero una
sobrecarga
son ms
especficas,
se utiliza la
sobrecarga
ms
especfica.

Esta condicin produjo un error en tiempo de compilacin de la resolucin de


sobrecarga en Visual Studio 2010. En el ejemplo siguiente, la lnea Process(theList)
produce un error en tiempo de compilacin en Visual Studio 2010. En la versin actual,
la lnea coincide con la sobrecarga ms especfica del mtodo Process .

PrivateSubTest()
DimtheListAsNewList(OfInteger)
Process(theList)
DimtheQueueAsNewQueue(OfInteger)
Process(theQueue)
EndSub
PrivateSubProcess(OfT)(ByValtheListAsList(OfT))
Debug.WriteLine("firstoverload")
EndSub
PrivateSubProcess(OfT)(ByValxAsT)
Debug.WriteLine("secondoverload")
EndSub
'Output:
'firstoverload
'secondoverload

Vea tambin
Referencia
Instruccin For Each...Next Visual Basic

Conceptos

Lambda expresiones Visual Basic


Novedades de Visual Basic en Visual Studio 2012

Otros recursos
https://msdn.microsoft.com/eses/LIBRARY/cc714070(d=printer,v=vs.110).aspx

3/4

27/12/2015

CambiosimportantesdeVisualBasicenVisualStudio2012

Otros recursos
Matrices en Visual Basic
LINQ en Visual Basic
Introduccin a Visual Basic
Cundo una correccin el no interrumpir de lenguaje est colocando?

Adiciones de comunidad
2015 Microsoft

https://msdn.microsoft.com/eses/LIBRARY/cc714070(d=printer,v=vs.110).aspx

4/4

Вам также может понравиться