La diferencia entre vb y vb.net
¿Cuál es la diferencia entre VB.NET y VB6.0?
Visual Basic .NET es uno de los componentes principales de la suite Microsoft Visual Studio .NET. La versión .NET de Visual Basic agregó más funciones y evolucionó hacia un lenguaje de programación totalmente orientado a objetos (como C++). Este artículo presentará las nuevas características de VB.NET, comparará las diferencias entre VB6.0/VB.NET y explicará cómo usar VB.NET para escribir aplicaciones simples.
1.1 ¿Qué es VB.NET? Microsoft lanza un nuevo sistema operativo y de programación Framework-.NET, que soporta múltiples lenguajes utilizando bibliotecas públicas .NET para desarrollar aplicaciones. Estructura. Programar en .NET Framework usando Visual Basic, eso es VB.NET.
Primero, déjame demostrarte cómo escribir el programa de consola más simple en VB.NET: Hello World.
1.2 ¡Hola, mundo! "Hello World!" es un programa representativo para que los principiantes aprendan a programar en Windows. Nuestro primer programa se llama "¡Hola mundo VB.NET!". El programa genera una frase en la consola: "¡Hola mundo VB.NET!", el código es el siguiente:
Código 1.1: Ejemplo de sistema de importaciones Hola mundo VB.NET
Módulo Módulo1
Sub Main()
System.Console.WriteLine("¡Hola mundo VB.NET!")
End Sub
Módulo final
1.3 Editor y compilador de VB.NET Puede escribir el código anterior en cualquier editor de texto, como el Bloc de notas o VS.NET IDE, y luego guardarlo como HelloWorld.vb. Después de escribir el código, compílelo desde la línea de comandos o en VS.NET IDE. El SDK de Microsoft .NET Framework ya incluye el compilador VB.NET vbc.exe[][1], al que se puede llamar desde el IDE o la línea de comandos. Para compilar HelloWorld.vb desde la línea de comando, ingrese en la ventana de línea de comando
vbc HelloWorld.vb /out:HelloWorld.exe /t:exe
Una vez completada la compilación, HelloWorld .exe se crea en el directorio actual. Haga doble clic en el icono en la administración de recursos o ejecútelo desde la línea de comando y el programa se ejecutará correctamente. Felicitaciones por ingresar a las filas de los desarrolladores de VB.NET.
Declaración de importaciones
Como sabes, la mayoría de los tipos .NET se definen en espacios de nombres. El espacio de nombres es una categoría que define y gestiona categorías. Al observar la biblioteca de clases de .NET Framework, puede ver cientos de espacios de nombres. Por ejemplo, el espacio de nombres del sistema incluye definiciones de tipos como Consola y Objeto. Si desea utilizar la clase Consola, debe importar el espacio de nombres del Sistema mediante la directiva Importaciones. Como se muestra a continuación:
El sistema de importaciones puede incluso llamar explícitamente al espacio de nombres sin importarlo con Import.
El siguiente ejemplo muestra el programa "¡Hola mundo!" sin importar:
Código 1.2: Ejemplo de módulo Hola mundo VB.NET Módulo1
Sub Main()
System.Console.WriteLine("¡Hola mundo VB.NET!")
End SubEnd Module1.4 analiza la primera línea del programa "¡Hola mundo VB.NET!":
Imports System; el espacio de nombres del sistema define la clase Consola, que se utiliza para leer y escribir la consola (ventana de línea de comando). Luego define un módulo: Módulo Módulo1
...End Module. Todos los programas de VB incluyen un método Main(), que es el punto de entrada de la aplicación. En el programa de ejemplo, llamamos a Console.WriteLine() para escribir "¡Hola mundo VB.NET!" en la consola:
Sub Main()
Console.WriteLine("Hola ¡VB.NET World!") El método End SubWriteLine() pertenece a la clase Consola y es responsable de escribir una cadena con un terminador de línea en la consola. Como se mencionó anteriormente, la clase Consola se define en el espacio de nombres del Sistema y usted controla los miembros de la clase a través de referencias directas.
La clase Consola es responsable de leer y escribir la consola del sistema. Utilice los métodos Read y ReadLine para leer la entrada de la consola y utilice el método WriteLine para enviarla a la consola.
Tabla 1.1 Métodos definidos por la clase Consola
Ejemplos de uso de métodos
Leer lee un solo carácter int i = Console.Read()
ReadLine lee una línea de cadena str = Console.ReadLine();
Write escribe una línea Console.Write("Write: 1"); línea con la línea Terminator
Console.WriteLine("Probar datos de salida con línea");
1.5 ¿Cuáles son las nuevas características de VB.NET? VB.NET es más estable que VB6.0 y está completamente orientado a objetos. Tal vez todavía recuerdes que VB6.0 no admite herencia, sobrecarga ni interfaces, por lo que no está verdaderamente orientado a objetos. VB.NET admite estas funciones orientadas a objetos. VB6.0 tiene dos puntos débiles: subprocesos múltiples y manejo de excepciones. En VB.NET, desarrollar aplicaciones multiproceso no es diferente de usar C++/C#, y también se admite el manejo estructurado de excepciones. Explicaremos estas características en detalle más adelante.
La siguiente es una lista de características de VB.NET -
Lenguaje de programación orientado a objetos. Admite herencia, sobrecarga, interfaces, miembros compartidos y constructores. ·Admite todas las funciones de CLS, como control de acceso a clases .NET, interacción con otros lenguajes .NET, metadatos, tipos de datos públicos, delegación, etc. ·Soporte de subprocesos múltiples. ·Manejo estructurado de excepciones. 1.6 Espacios de nombres y colecciones Anteriormente analizamos nuestro primer programa VB.NET. Lo primero que te llama la atención en este programa es el espacio de nombres. En la documentación de referencia de .NET, encontrará que cada clase pertenece a un espacio de nombres. Entonces, ¿qué es exactamente un espacio de nombres?
Un espacio de nombres es una combinación lógica de clases y componentes, y su propósito es definir clases .NET por categoría. Microsoft tomó prestado el concepto de empaquetado de clases de C++: espacio de nombres para describir esta combinación.
Los componentes de .NET Framework se denominan ensamblados. Todo el código .NET está definido en cientos de archivos de biblioteca (DLL). El espacio de nombres organiza las clases definidas en el ensamblado. Un espacio de nombres puede incluir varios ensamblajes y un ensamblaje también se puede definir en varios espacios de nombres. El nodo raíz del árbol del espacio de nombres es el espacio de nombres del sistema. En la biblioteca .NET, cada clase se define en un conjunto de categorías similares. Por ejemplo, el espacio de nombres System.Data solo incluye clases relacionadas con datos. Asimismo, System.Multithreading solo incluye clases multiproceso.
Al crear nuevas aplicaciones utilizando lenguajes compatibles con .NET (como C#, VB.NET, C++.NET, etc.), notará que cada aplicación se define como un espacio de nombres y todos las clases pertenecen a este espacio de nombres. Al hacer referencia a este espacio de nombres, otras aplicaciones pueden acceder a estas clases. En .NET, el código se compila en lenguaje intermedio (IL) y el ensamblado almacena código IL, metadatos y otros archivos de recursos. El mismo ensamblaje se puede adjuntar a uno o más Exe/DLL. Todas las bibliotecas .NET se almacenan en ensamblaje.
1.7 VB.NET: Un lenguaje de programación completamente orientado a objetos La abstracción, la encapsulación, el polimorfismo y la herencia son los cuatro atributos básicos de los lenguajes orientados a objetos. VB6.0 no admite herencia, pero VB.NET no. Por tanto, al igual que C++, VB.NET también es un lenguaje de programación completamente orientado a objetos.
Class y ModuleVB.NET utilizan pares de instrucciones Class...End Class para crear clases. Cada VB.NET incluye al menos un módulo. El módulo se implementa en el par de instrucciones Módulo...Fin del módulo. El módulo principal de la aplicación es el método principal, que es el punto de entrada de la aplicación.
Al igual que VB6.0, puede utilizar la palabra clave Function/Sub para definir métodos. El siguiente ejemplo muestra cómo crear una clase, agregar métodos y llamar a métodos desde el programa principal: Imports System
Módulo Módulo1
Sub Main()
Dim cls As TestClass = New TestClass
Console.WriteLine(cls.MyMethod)
End Sub
Clase TestClass
Función MyMethod( ) Como cadena
Devolver "Método de prueba"
Función final
Clase final
La propiedad End ModuleProperty (Propiedad) es pública * de variables de clase **describir. Propiedad...La declaración de propiedad final se utiliza para crear una propiedad. Los métodos Get/Set de atributos se utilizan para obtener y establecer valores de atributos respectivamente. En el siguiente ejemplo, Datos es una propiedad de TestClass.
Sistema de importaciones
Sistema de importaciones.Console
Módulo Módulo1
Sub Main()
Dim cls As TestClass = Nueva Clase de Prueba
WriteLine(cls.MyMethod)
WriteLine(cls.Data)
cls.Data = "Nuevos Datos"
WriteLine(cls.Data)
End Sub
End Module
Class TestClass
Private strData As String = "Algunos datos "
Función MyMethod() como cadena
Devuelve "¡Método de prueba!"
Función final
' Agregando la propiedad Datos a la clase
Datos de propiedad pública() como cadena
Obtener
Devolver strData
Fin Obtener
Set(ByVal Valor como cadena)
strData = Valor
Conjunto final
Propiedad final
Sobrecarga VB.NET admite métodos a través de la palabra clave sobrecarga Sobrecarga . Con esta palabra clave, puede definir métodos con el mismo nombre pero con diferentes parámetros.
Dominio de acceso de miembros de la clase
Además del Privado y Público originales, VB.NET introduce varias palabras clave nuevas. La lista de todas las palabras clave del dominio de acceso es la siguiente:
Alcance de la palabra clave
Privado está limitado al interior de la clase
Se puede acceder al público desde fuera de la clase. clase
Amigo está limitado al programa de aplicación al que pertenece la clase
Solo se puede acceder a Protegido por clase y sus clases derivadas
Se puede acceder a Amigo Protegido por clase, aplicaciones y clases derivadas
Herencia La herencia es la técnica más utilizada en lenguajes de programación orientados a objetos. La herencia le permite reutilizar el código de clase y la funcionalidad.
VB.NET admite herencia, pero VB6.0 no. La belleza de la herencia es que puedes usar clases escritas por cualquier persona, derivar tus propias clases a partir de esas clases y luego llamar a la funcionalidad de la clase principal en tu propia clase. En el siguiente ejemplo, la Clase B se deriva de la Clase A y llamaremos al método MétodoA de la Clase A de la Clase B.
Sistema de importaciones
Sistema de importaciones.Console
Módulo Módulo1
Sub Main()
Dim bObj As B = Nuevo B
WriteLine(bObj.MethodA())
End Sub
End Module
' Clase A definida p>
Clase pública A
Función MétodoA() como cadena
Devuelve "Se llama al método A".
Función final
Fin de clase
'Clase B, heredada de la Clase A. Todos los miembros (públicos y protegidos)
' ahora pueden acceder a través de
Público. Clase B
Hereda A
Función MétodoB() como cadena
Devuelve "Se llama al método B".
Función final
p> p>Finalizar clase
Puede derivar varias clases personalizadas de una clase o puede derivar una clase personalizada de varias clases.
Los miembros compartidos de una clase son compartidos por todas las entidades de la clase. Los miembros compartidos pueden ser propiedades, métodos o campos/rangos. Los miembros privados son útiles cuando no deseas darles a los usuarios control total sobre tu clase. Por ejemplo, puede desarrollar una biblioteca de clases que permita a los usuarios utilizar algunas de sus funciones a través de miembros compartidos.
Se puede hacer referencia a los miembros compartidos a través de la propia clase, sin pasar por la entidad de la clase. Por ejemplo: Módulo Módulo1
Sub Main()
WriteLine(A.MethodA())
End Sub
Fin del módulo< / p>
' Clase A definida
Clase pública A
Función compartida MétodoA() Como cadena
Devuelve "Se llama al método A".< / p>
Función final
Clase final
Una debilidad importante del lenguaje VB multiproceso es la falta de capacidad para escribir programas sin subprocesos. En .NET Framework, todos los lenguajes comparten CRL (Common Runtime Library, biblioteca pública en tiempo de ejecución), es decir, puedes escribir el mismo programa en VB.NET, C# u otros lenguajes .NET.
El espacio de nombres System.Threading define la clase de subproceso. Solo necesitamos introducir el espacio de nombres System.Threading para usar la clase thread.
La clase System.Threading.Thread proporciona objetos de subprocesos y puedes usar la clase Thread para crear o destruir subprocesos.
La creación de un hilo utiliza la entidad de la clase Thread para crear un nuevo hilo y luego usa el método Thread.Start para comenzar a ejecutar el hilo.
El constructor del hilo acepta un parámetro que especifica el procedimiento que desea ejecutar en el hilo. En el siguiente ejemplo, quiero ejecutar el procedimiento SecondThread en el segundo hilo de oThread1 (una entidad de la clase Thread):
oThread1 = New Thread(AddressOf SecondThread)
SecondThread El procedimiento se ve así:
Public Sub SecondThread()
Dim i As Integer
For i = 1 To 10
Consola. WriteLine(i .ToString())
Siguiente
End Sub
Luego, llama a Thread.Start() para iniciar el hilo:
oThread1.Start ()
El siguiente código crea dos segundos subprocesos:
Sistema de importaciones
Sistema de importaciones.Threading
Módulo Módulo1 p>
Subproceso1 público como subproceso
Subproceso2 público como subproceso
Sub Main()
oSubproceso1 = Nuevo subproceso (Dirección del segundo subproceso)
oThread2 = Nuevo hilo(AddressOf ThirdThread)
oThread1.Start()
oThread2.Start()
Fin Sub
Public Sub SecondThread()
Atenuar i como entero
Para i = 1 a 10
Console.WriteLine(i.ToString())
Siguiente
End Sub
Public Sub ThirdThread()
Atenuar i como entero
Para i = 1 a 10
Console.WriteLine("A" + i.ToString())
Siguiente
Fin Sub
Fin del módulo
El hilo destructor llama al método Abort para destruir (abortar) un hilo. Antes de llamar a Abort, asegúrese de usar IsAlive para determinar que el hilo está activo.
Si oThread1.IsAlive Entonces
oThread1.Abort()
End If
Para pausar un hilo, puedes usar la función Suspender Método para pausar la ejecución del hilo. El método Sleep acepta un parámetro en milisegundos, que indica cuánto tiempo debe pausarse el hilo.
El siguiente ejemplo pausa el subproceso durante 1 segundo:
oThread2.Sleep(1000) También puede utilizar los métodos Suspend y Resume para suspender y continuar la ejecución del subproceso.
Establecer la prioridad del subproceso. La propiedad Prioridad de la clase Thread se utiliza para establecer la prioridad del subproceso. Esta propiedad se puede establecer en Normal, Por encima de lo normal, Por debajo de lo normal, Más alto y Más bajo. Por ejemplo:
oThread2.Priority = ThreadPriority.Highest Los subprocesos y apartamentos utilizan el atributo ApartmentState para establecer el tipo de apartamento del subproceso. El valor del atributo puede ser STA, MTA o Desconocido[][2]:<. /p>
oThread.ApartmentState = ApartmentState.MTAMTS significa que se puede utilizar el modo multiproceso, mientras que STA solo se puede ejecutar en un único subproceso.
Enumación pública ApartmentState
{
STA = 0,
MTA = 1,
Desconocido = 2 ,
}
1.8 Manejo estructurado de excepciones El manejo de excepciones también se denomina manejo de errores. Como programador de VB, debe estar familiarizado con las declaraciones de manejo de errores de VB6.0 On Error Goto y On Error Resume Next. Este tipo de manejo de errores se llama manejo de excepciones no estructurado. En VB.NET, Microsoft introdujo un mecanismo estructurado de manejo de excepciones. VB.NET admite TryCatch similar a C++... Finalmente controla. La estructura de Try..Catch..Finally es la siguiente: Try
' Código que puede causar excepciones
Catch
' Código que maneja excepciones cuando hay excepciones ocurrir
p>Finalmente
' Limpiar la escena
Finalizar intento
El bloque de declaración Try se utiliza para generar excepciones. Si ocurre una excepción, se maneja en el bloque de declaración Catch. El bloque de declaración Finalmente es opcional y es particularmente útil cuando es necesario liberar recursos.
1.9 La diferencia entre VB6.0 y VB.NET no es solo la evolución del lenguaje mencionada anteriormente, sino también algunos cambios gramaticales. Todos estos cambios de idioma y sintaxis se pueden encontrar en MSDN y este artículo solo ofrece una breve introducción.
Cambios en el tipo de datos Se han mejorado algunos tipos de datos en VB.NET. A continuación se muestra una tabla comparativa de cambios.
Tipo de datos VB6.0 VB.NET
Entero Tamaño de 16 bits Tamaño de 32 bits
Tamaño largo de 32 bits Tamaño de 64 bits
La moneda se utiliza para almacenar grandes números de punto flotante y se reemplaza por decimal, lo que permite una mayor precisión.
La variante puede almacenar cualquier tipo de datos y se reemplaza por el tipo Objeto. También puede almacenar cualquier tipo de datos. pero el resultado es mejor
Fecha El tipo de fecha se almacena como doble y el tipo Fecha y hora se introduce para almacenar fechas en diferentes formatos
En VB.NET, el tipo de datos Corto es 16 poco. Short, Integer y Long son equivalentes a los tipos System.Int16, System.Int32 y System.Int64 de CLR. Cambios en las declaraciones de variables En VB6.0, las declaraciones de variables tienen muchas restricciones. Una de ellas es que no se pueden declarar varias variables al mismo tiempo. Si debe declarar varias variables en una línea, debe especificar el tipo de cada variable; de lo contrario, se utilizará de forma predeterminada el tipo Variante.
Dim a1, a2 As Integer Dim a3 As Integer, a4 As Integer a1 en la primera línea es un tipo Variant, a2 es un tipo Integer.
Ambas variables de la segunda línea son de tipo Entero. VB.NET admite la declaración paralela de múltiples variables, por ejemplo:
Dim a1, a2, a3 Como inicialización de variables enteras es otro problema. En VB6.0, las variables no se pueden declarar e inicializar al mismo tiempo, pero VB.NET admite esta característica.
Dim name As String = "Mahesh" System.Console.Write(name) También puede declarar constantes de la siguiente manera: Const DT_COUNT As Integer = 23 Nueva palabra clave. En VB.NET, la palabra clave New se utiliza para crear objetos. Dado que el tipo de datos es un objeto, la palabra clave Nueva se utiliza para crear un objeto de tipo de datos.
Dim i As Integer = New Integer()i = 10System.Console.WriteLine(i.ToString()) soporte de nivel de bloque de código. Al igual que C++, VB.NET admite la verificación del alcance a nivel de bloque. Las variables declaradas en un bloque de declaración solo son válidas dentro del bloque.
For i = 1 To 10Dim p As LongSystem.Console.WriteLine(i.ToString())NextSystem.Console.WriteLine(p.ToString()) Este código obtendrá un error de compilación porque p no es accesible fuera del bloque de instrucciones For...Next. Este código puede pasar en VB6.0.
Seguridad de tipos mejorada
En VB6.0, cuando declara una referencia a un procedimiento externo, puede especificar cualquier tipo de parámetro como Cualquiera. La palabra clave Any deshabilita la verificación de tipos y permite pasar y devolver cualquier tipo de datos.
VB.NET no admite la palabra clave Any. Debe especificar el tipo de datos de cada parámetro y el valor de retorno. Arrays VB.NET ha realizado cambios significativos en los arrays.
Rango de matriz. En VB.NET, es necesario prestar especial atención a los problemas de rango de matriz. El límite inferior predeterminado de la matriz en VB6.0 es 0, por lo que el número de elementos de la matriz es igual al límite superior de la matriz más uno. La siguiente matriz limita de A(0) a A(10), con 11 elementos:
Dim A(10) As Single Puede usar Option Base para cambiar el valor del límite inferior a 1. En VB.NET, las matrices son iguales que en C++, el límite inferior es 0 y Option Base no es compatible. Nota: La documentación de MSDN indica que una matriz solo puede incluir el número de elementos igual a su tamaño. Por ejemplo: Dim A(10) As Integer solo puede incluir 10 elementos (de A(0) a A(9)), pero cuando. compilando el siguiente párrafo Cuando lo codifiqué descubrí que funcionaba bien y parecía que la matriz contenía 11 elementos.
Atenuar A(10) Como Entero A(0) = 12 A(2) = 24 A(10) = 23 System.Console.WriteLine(A(0).ToString()) System.Console .WriteLine(A(10).ToString())System.Console.WriteLine(UBound(A).ToString()) System.Console.WriteLine(LBound(A).ToString()) Lbound y Ubound devuelven 0 y 10 respectivamente . ReDim y matriz fija. Puede especificar matrices de longitud fija en VB6.0.
Dim ArrWeekDays(0 To 6) As Integer
La matriz ArrWeekDays aquí tiene una longitud fija y la longitud no se puede cambiar usando la instrucción ReDim. VB.NET no admite matrices de longitud fija, por lo que ReDim siempre funciona.
Las matrices se pueden declarar de las siguientes dos maneras: Dim ArrWeekDays(6) As IntegerDim ArrWeekDays() As Integer = {1, 2, 3, 4, 5, 6} Instrucción ReDim. En VB6.0, ReDim se utiliza para inicializar matrices dinámicas. No puede usarlo como declaración en VB.NET. ReDim solo se puede usar para cambiar la longitud de la matriz, pero no las dimensiones de la matriz.
Variante versus Objeto El tipo de datos Variante en VB6.0 puede almacenar cualquier tipo de variable, y Objeto en VB.NET tiene la misma capacidad.
Operadores aritméticos VB.NET admite atajos similares a C++. La siguiente tabla muestra en qué se diferencian las acciones normales de las acciones abreviadas. Los atajos también se pueden utilizar con operadores como *, /, |, &, etc.
Atajo de sintaxis general del operador suma A = A+5 A +=5 resta A = A – 5 A -+ 5 cadena de longitud fija
En VB6.0, puede especificar el longitud de una cadena al declararla. VB.NET no admite cadenas de longitud fija.
Operadores booleanos Las declaraciones And, Or o Xor en VB6.0 son operadores bit a bit. En VB.NET, son operadores booleanos. La realización de estas operaciones devolverá verdadero o falso. VB.NET introduce nuevos operadores para completar operaciones bit a bit.
Operador Descripción BitAnd Bitwise AndBitOr Bitwise OrBitXor Bitwise XorBitNot Bitwise Not Estructuras y tipos personalizados En VB6.0, se utiliza el bloque de instrucciones Type...End Type para crear estructuras o tipos personalizados. Por ejemplo:
Escriba StdRec
StdId como entero
StdName como tipo de extremo de cadena
VB.NET introduce una nueva sintaxis: Estructura . Tipo...El tipo final ya no es compatible. Estructura...La estructura final se usa igual que C++. Puede especificar el dominio accesible de cada elemento de la estructura, como Público, Protegido, Amigo, Amigo protegido, Privado, etc. Por ejemplo:
Structure StdRec
Public StdId As Integer Public StdName As String
Private StdInternal As String End Las estructuras en VB.NET son como clases, también Puede tener métodos y propiedades. Palabras clave New y Nothing En VB6.0, las palabras clave AS New y Nothing se utilizan para declarar un objeto e inicializarlo. VB.NET no admite la creación implícita de objetos. Como se mencionó anteriormente, incluso los tipos de datos son objetos. Puede utilizar los dos métodos siguientes para crear tipos de datos u objetos: Dim i As Integer Dim i As Integer = New Integer() // Hacer algo si i = Nada Luego finalizar si la instrucción Set no es compatible con VB6.0. Establecer declaración para asignar objetos. Por ejemplo: Set myObj = new MyObjectSet a = b En VB.NET, no es necesario utilizar Set para asignar objetos. Por ejemplo: myObj = new MyObj()a = b Cambios en la sintaxis de los procedimientos Ha habido muchos cambios en la sintaxis de los procedimientos en VB.NET.
Por ejemplo, método de llamada a procedimiento similar a C++, ByVal (valor de paso) como tipo predeterminado, palabra clave opcional, declaración de devolución, etc. El método de llamada a procedimientos similar a C++ VB6.0 permite llamar a procedimientos (sub) sin paréntesis. Sin embargo, cuando llame a una función o sub con la instrucción Call, asegúrese de usar paréntesis. Por ejemplo: Dim I as IntegerCall EvaluateData(2, i) EvaluateData 2, i En VB.NET, todas las llamadas a métodos requieren paréntesis y la instrucción Call es opcional. ByVal es el tipo de parámetro predeterminado en VB6.0, y ByRef (paso por referencia) es el tipo predeterminado al llamar a una función o sub. Eso significa que todos los cambios se reflejarán en las variables pasadas. VB.NET cambia este enfoque. Ahora, el tipo de parámetro predeterminado es ByVal (pasar por valor). Palabra clave opcional VB6.0 usa la palabra clave opcional para permitir que el usuario decida pasar un valor predeterminado y luego llamar a la función IsMissing para determinar si el parámetro es válido. En VB.NET, cada parámetro opcional debe declarar su valor predeterminado sin llamar a la función IsMissing. Por ejemplo: Sub MyMethod(Optional ByVal i As Integer = 3)
Declaración de retorno La declaración de retorno de VB.NET es similar a C++. Utilice la instrucción Return para devolver el control del procedimiento a la persona que llama. En VB6.0, la declaración Return se usa con la declaración GoSub. VB.NET ya no admite la declaración GoSub. Cambios en el control de flujo Los siguientes son cambios en las declaraciones de control de flujo en VB.NET: 1. GoSub ya no es compatible. 2. Las declaraciones Call, Function y Sub se pueden utilizar para llamar a procedimientos. 3. Las declaraciones On...GoSub y On...GoTo ya no son compatibles. Puede utilizar la instrucción Seleccionar caso en su lugar. 4. La instrucción While...Wend ahora se cambia a la instrucción While...End While. La palabra clave Wend ya no es compatible. Resumen Visual Basic .NET es la versión .NET de Visual Basic, ¡que ha cambiado fundamentalmente! A través de este artículo, comprenderá que la diferencia entre VB6.0 y VB.NET es muy grande. Se puede decir que son dos lenguajes diferentes porque sus núcleos han cambiado en base a COM. y vb.net está basado en .NET framework, debido a este cambio, también se han producido cambios fundamentales en la construcción de clases.