Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre vb y vb.net

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

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

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.