You are on page 1of 14

C# para Programadores de Visual Basic

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
de 16 bits.
lugar
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.
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
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
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#.


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",
MessageBoxButtons.OK)
Visual C#
MessageBox.Show("Hola Mundo",
MessageBoxButtons.OK);
"Pantalla Ejemplo",
"Pantalla Ejemplo",
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
x = DateTime.Now;
Dia=x.day;
Visual Basic
Dim Dia As Integer
Dia=day(x)
Visual Basic .NET
Dim Dia As Integer
Dia=x.day
Visual C#
Int Dia;
Visual Basic .NET
Dim x As Date
x = Date.Now
Cuando quieres obtener una seccin d

Visual C#
DateTime x;
e una fecha

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,
VB.NET Y.Subtract(X).TotalSeconds
C# Y.Subtract(X).TotalSeconds;
Y)
Diferencias en la Sintaxis de C# vs VB.NET
La sintaxis entre ambos lenguajes
siguientes:
Definicin de una clase
es diferente. Alguna diferencias son las
Definicin de una Propiedad
set {}
Visual Basic .NET
Public Property Property1() As Integer
Get
End Get
Set(ByVal value As Integer)
End Set
End Property
Visual C#
public int Property
{
get {}
}
Visual Basic .NET
Public Class NombreClase
End Class
Visual C#
class NombreClase
{}
Diferencias en la Sintaxis de C# vs VB.NET
La sintaxis entre ambos lenguajes
siguientes:
es dieferente. Alguna diferencias son las
Definicin de un Mtodo
Definicin de un Constructor
Sub New()
End Sub
public Class1()
{ }
Visual Basic .NET
Public Sub Method()
End Sub
Visual C#
public void Method()
{ }
Public Function Method() As Integer
End Function
public int Method1()
{ }
Diferencias en la Sintaxis de C# vs VB.NET
La sintaxis entre ambos lenguajes es
siguientes:
diferente. Alguna diferencias son las
Como se escribe una condicin IF
{ }
Definicin de un bucle for
{ }
Select Case
switch (Opcion){
case "Y":
Visual Basic .NET
Select Case Opcion
Case "X"
Case "Y"
End Select
Visual C#
case "X":
}
Visual Basic .NET
For X As Integer = 1 To 10
Next
Visual C#
for (int X = 1; i <= 10; i++)
Visual Basic .NET
If Condicion Then
End If
Visual C#
if (Condicion)
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).

You might also like