Upload
pandicito
View
5
Download
0
Embed Size (px)
Citation preview
C# para Programadores de Visual Basic
Agenda
••
Diferencias entre Visual Basic 6 y .NETMigrando 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 datosuniversal.
• Variables Integer y Long– Las variables Integer se almacenan como números de 32 bits en
de 16 bits.lugar
– Las variables Long se almacenan como números de 64 bits en lugar de32 bits.
Las variables Short se almacenan como números de 16 bits. Ocupando el espacio que dejan las Variables Integer
–
• Variables Date
– En .NET las variables se almacenan internamente como enteros de 64bits, y no pueden manipularse directamente como antes se hacia en Visual Basic 6.0 en el cual se almacenaba internamente como Double y podía ser manipulada externamente.
Diferencias entre Visual Basic 6 y .NET• Instrucciones Type
– Las instrucciones Type que servian para establecer un tipo de datosdefinido 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 queVisual Basic 6 se inicializaban en Empty
• Null
– En Visual Basic .NET no se admite la propagación de Null que en VisualBasic 6 eran utilizados para para indicar que una variable contenía un dato no valido
Diferencias entre Visual Basic 6 y .NET
• Parámetro predeterminado ByVal/ByRef
– En Visual Basic .NET los parametros adoptan de forma predeterminadael 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 proporcionandoclases 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 permitiruna trancisión menos dolorosa al desarrollo en .NET.
• ¿Para que sirve eliminar el espacio de nombresMicrosoft.VisualBasic?
– Para que los programadores dejen de programar en las herramientasde .NET al estilo de Visual Basic 6.
Permite al desarrollador erradicar malas practicas que lleva arrastrando desde la programación 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 función MsgBox no existe en .NET
– En Visual Basic NET la clase MessageBox con su metodo Show,substituye a la función MsgBox de Vb 6.
Microsoft.VisualBasicMsgBox("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 función isNumeric y la función isDate
– En su lugar se pueden utilizar los metodos TryParse que acompañan alos diversos Tipos.
Microsoft.VisualBasicif isnumeric(Valor) then
Visual Basic .NET 2003If Double.TryParse(Valor, Globalization.NumberStyles.Any,Globalization.CultureInfo.CurrentCulture, ValorOut) Then
Visual C# 2003if (Double.TryParse(Valor, System.Globalization.NumberStyles.Any,
System.Globalization.CultureInfo.CurrentCulture, outValorOut))
Visual Basic .NET 2005If Double.TryParse(Valor, ValorOut) Then
Visual C# 2005if (Double.TryParse(Valor,out ValorOut ))
Cambios al quitar el Namespace VisualBasic
• Microsoft.VisualBasic.DateAndTime
– Dentro de este espacio de nombres se encuentran todas las funcionesque en Visual Basic 6 eran utilizadas para realizar operaciones que tenian que ver con las fechas.Ejemplos:–• La función Now que trae la fecha y hora que tiene la maquina cambia por
x = DateTime.Now;
Dia=x.day;
Visual BasicDim Dia As IntegerDia=day(x)
Visual Basic .NET
Dim Dia As IntegerDia=x.day
Visual C#
Int Dia;
Visual Basic .NETDim x As Date x = Date.Now• Cuando quieres obtener una sección 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 lenguajessiguientes:
Definición de una clase
es diferente. Alguna diferencias son las
Definición de una Propiedad
set {}
Visual Basic .NETPublic 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 lenguajessiguientes:
es dieferente. Alguna diferencias son las
Definición de un Método
Definición de un ConstructorSub New()
End Sub
public Class1()
{ }
Visual Basic .NET
Public Sub Method()
End Sub
Visual C#
public void Method()
{ }
Public Function Method() As Integer
End Functionpublic int Method1()
{ }
Diferencias en la Sintaxis de C# vs VB.NET
• La sintaxis entre ambos lenguajes essiguientes:
diferente. Alguna diferencias son las
Como se escribe una condición IF
{ }
Definición de un bucle for
{ }
Select Case
switch (Opcion){
case "Y":
Visual Basic .NETSelect Case Opcion
Case "X" Case "Y"
End Select
Visual C#
case "X":
}
Visual Basic .NET
For X As Integer = 1 To 10Next
Visual C#
for (int X = 1; i <= 10; i++)
Visual Basic .NET
If Condicion ThenEnd 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).
•