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

C# para Programadores de Visual Basic

Reunin de la Comunidad .NET D.F.

Agenda
Diferencias entre Visual Basic 6 y .NET Migrando de Visual Basic .NET a C#
Eliminando el Espacio de Nombres Microsoft.VisualBasic Diferencias en la Sintaxis de C# vs VB.NET Algunos detalles adicionales

Diferencias entre Visual Basic 6 y .NET


En Visual Basic .NET no existe el tipo de datos Variant
En su lugar se utiliza el tipo de datos Object como tipo de datos universal.

Variables Integer y Long


Las variables Integer se almacenan como nmeros de 32 bits en lugar de 16 bits. Las variables Long se almacenan como nmeros de 64 bits en lugar de 32 bits. Las variables Short se almacenan como nmeros de 16 bits. Ocupando el espacio que dejan las Variables Integer

Variables Date
En .NET las variables se almacenan internamente como enteros de 64 bits, y no pueden manipularse directamente como antes se hacia en Visual Basic 6.0 en el cual se almacenaba internamente como Double y poda ser manipulada externamente.

http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp

Diferencias entre Visual Basic 6 y .NET


Instrucciones Type
Las instrucciones Type que servian para establecer un tipo de datos definido por el usuario cambia a Structure

Valor de True
El valor de true tiene un valor de 1 en .NET mientras que en Visual 6 era de -1

Empty
En Visual Basic .NET las variables se inicializan en Nothing y mientras que Visual Basic 6 se inicializaban en Empty

Null
En Visual Basic .NET no se admite la propagacin de Null que en Visual Basic 6 eran utilizados para para indicar que una variable contena un dato no valido

http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp

Diferencias entre Visual Basic 6 y .NET


Parmetro predeterminado ByVal/ByRef
En Visual Basic .NET los parametros adoptan de forma predeterminada el valor ByVal mientras que en Visual Basic 6 adoptaban de forma predeterminada el valor ByRef.

ADO, RDO y DAO


ADO.NET substituye los objetos de ADO,RDO y DAO proporcionando clases adicionales al acceso a datos que funcionan de forma desconectada.

Manejo de Errores Estructurado


Try, Catch, Finally substituye el uso de On Error

http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp

Migrando de Visual Basic .NET a C#


Eliminando el Espacio de Nombres Microsoft.VisualBasic
El espacio de nombres Microsoft.VisualBasic fue creado para permitir una trancisin menos dolorosa al desarrollo en .NET. Para que sirve eliminar el espacio de nombres Microsoft.VisualBasic?
Para que los programadores dejen de programar en las herramientas de .NET al estilo de Visual Basic 6. Permite al desarrollador erradicar malas practicas que lleva arrastrando desde la programacin en Visual Basic 6. Una vez que se ha eliminado el espacio de nombres es mucho mas sencillo aprender C#.

http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp

Cambios al quitar el Namespace VisualBasic


La funcin MsgBox no existe en .NET
En Visual Basic NET la clase MessageBox con su metodo Show, substituye a la funcin MsgBox de Vb 6.

Microsoft.VisualBasic MsgBox("Hola Mundo", Microsoft.VisualBasic.MsgBoxStyle.OKOnly, "Pantalla Ejemplo") Visual Basic .NET MessageBox.Show("Hola Mundo", "Pantalla Ejemplo", MessageBoxButtons.OK) Visual C# MessageBox.Show("Hola Mundo", "Pantalla Ejemplo", MessageBoxButtons.OK);

http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp

Cambios al quitar el Namespace VisualBasic


La funcin isNumeric y la funcin isDate
En su lugar se pueden utilizar los metodos TryParse que acompaan a los diversos Tipos. Microsoft.VisualBasic if isnumeric(Valor) then Visual Basic .NET 2003 If Double.TryParse(Valor, Globalization.NumberStyles.Any, Globalization.CultureInfo.CurrentCulture, ValorOut) Then Visual C# 2003 if (Double.TryParse(Valor, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.CurrentCulture, out ValorOut)) Visual Basic .NET 2005 If Double.TryParse(Valor, ValorOut) Then Visual C# 2005 if (Double.TryParse(Valor,out ValorOut ))

Cambios al quitar el Namespace VisualBasic


Microsoft.VisualBasic.DateAndTime
Dentro de este espacio de nombres se encuentran todas las funciones que en Visual Basic 6 eran utilizadas para realizar operaciones que tenian que ver con las fechas. Ejemplos:
La funcin Now que trae la fecha y hora que tiene la maquina cambia por

Visual Basic .NET Dim x As Date x = Date.Now

Cuando quieres obtener una seccin de una fecha

Visual C# DateTime x; x = DateTime.Now;

Visual Basic Dim Dia As Integer Dia=day(x)

Visual Basic .NET Dim Dia As Integer Dia=x.day

Visual C# Int Dia; Dia=x.day;

Cambios al quitar el Namespace VisualBasic


Microsoft.VisualBasic.DateAndTime
Algunos ejemplos adicionales serian:

DateAdd VB Dateadd(DateInterval.Day,3,X) VB.NET x.AddDays(3) C# x.AddDays(3); DateDiff VB DateDiff(DateInterval.Second, X, Y) VB.NET Y.Subtract(X).TotalSeconds C# Y.Subtract(X).TotalSeconds;

Diferencias en la Sintaxis de C# vs VB.NET


La sintaxis entre ambos lenguajes es diferente. Alguna diferencias son las siguientes: Definicin de una clase Visual Basic .NET Public Class NombreClase End Class Definicin de una Propiedad Visual Basic .NET
Public Property Property1() As Integer Get End Get Set(ByVal value As Integer) End Set End Property

Visual C# class NombreClase {}

Visual C# public int Property { get {} set {} }

Diferencias en la Sintaxis de C# vs VB.NET


La sintaxis entre ambos lenguajes es dieferente. Alguna diferencias son las siguientes: Definicin de un Mtodo Visual Basic .NET Public Sub Method() End Sub
Public Function Method() As Integer End Function

Visual C# public void Method() { } public int Method1() { } public Class1() { }

Definicin de un Constructor Sub New() End Sub

Diferencias en la Sintaxis de C# vs VB.NET


La sintaxis entre ambos lenguajes es diferente. Alguna diferencias son las siguientes: Como se escribe una condicin IF Visual Basic .NET If Condicion Then End If Definicin de un bucle for Visual Basic .NET For X As Integer = 1 To 10 Next Select Case Visual Basic .NET Select Case Opcion Case "X" Case "Y" End Select Visual C# if (Condicion) {}

Visual C# for (int X = 1; i <= 10; i++) { }

Visual C# switch (Opcion){ case "X": case "Y": }

Algunos detalles adicionales


Al trabajar con Visual C# debes tener cuidado con el Casing ya que este lengiaje distingue entre mayusculas u minusculas, por lo que no es lo mismo MiVariable que mivariable. Cuando un metodo en C# espera un valor en un tipo en espcifico este debe ser convertido previamente antes de que pueda ser enviado como parametro. Ej. MessageBox.Show(ValorOut.ToString()); Mientras que en visual basic era valido realizarlo de la siguiente manera MessageBox.Show(ValorOut).

Jos Ral Guerrero Carren


http://www.superneurona.com

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