Upload
berlyjaqquehuacano
View
13
Download
2
Embed Size (px)
DESCRIPTION
*
Citation preview
.NET 4.5.1 Fundamentals Developer Visual Studio 2013 con C#
Revisión de Conceptos de Programación Tipos y Conversión de Datos
Al finalizar el capítulo, el alumno:
Identifica los tipos de datos en el NET Framework distinguiendo su empleo.
Declara variables y constantes estableciendo su ámbito de acción.
Emplea los diversos operadores para resolver reglas de negocio determinadas.
Identifica herramientas para conversión de datos.
Temas
1. Tipos de datos en el CLR
2. Variables
3. Constantes
4. Operadores
5. Conversión de Datos
Tipos y Conversión de Datos 84
1. Tipos de datos en el CLR
1.1 Clasificación de datos Un tipo de dato determina la naturaleza del dominio de valores que puede tomar una variable, las operaciones en que puede participar y el espacio de memoria que necesita. Las siguientes tablas muestran los tipos de datos que maneja VB.NET y C#.
Tipo de Visual Basic Estructura de
tipo CLR
Asignación de almacenamiento
nominal Intervalo de valores
Boolean Boolean En función de la plataforma de implementación
True o False
Byte Byte 1 byte 0 a 255 (sin signo)
Char (caracter individual)
Char 2 bytes 0 a 65535 (sin signo)
Date DateTime 8 bytes 0:00:00 (medianoche) del 1 de enero de 0001 a 11:59:59 p.m. del 31 de diciembre de 9999.
Decimal Decimal 16 bytes
0 a +/-79.228.162.514.264.337.593.543.950.335 (+/-7,9... E+28)
† sin separador decimal; 0 a
+/-7,9228162514264337593543950335 con 28 posiciones a la derecha del decimal; el número distinto de cero más pequeño es +/-0,0000000000000000000000000001 (+/-1E-28)†
Tipos y Conversión de Datos 85
Tipo de Visual Basic Estructura de
tipo CLR
Asignación de almacenamiento
nominal Intervalo de valores
Double (punto flotante de precisión doble)
Double 8 bytes
-1,79769313486231570E+308 a -4,94065645841246544E-324
† para los
valores negativos; 4,94065645841246544E-324 a 1,79769313486231570E+308 † para los valores positivos
Integer Int32 4 bytes -2.147.483.648 a 2.147.483.647 (con signo)
Long (entero largo) Int64 8 bytes -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9,2...E+18
†)
(con signo)
Objeto Object (clase)
4 bytes en plataforma de 32 bits 8 bytes en plataforma de 64 bits
Cualquier tipo puede almacenarse en una variable de tipo Object
SByte SByte 1 byte -128 a 127 (con signo)
Short (entero corto) Int16 2 bytes -32.768 a 32.767 (con signo)
Single (punto flotante de precisión sencilla)
Single 4 bytes
-3,4028235E+38 a -1,401298E-45 † para los
valores negativos 1,401298E-45 a 3,4028235E+38 † para los valores positivos
String (longitud variable)
String (clase) En función de la plataforma de implementación
0 a 2.000 millones de caracteres Unicode aprox.
UInteger UInt32 4 bytes 0 a 4.294.967.295 (sin signo)
ULong UInt64 8 bytes 0 a 18.446.744.073.709.551.615 (1,8...E+19 ) (sin signo)
User-Defined(estructura)
(hereda de ValueType)
En función de la plataforma de implementación
Cada miembro de la estructura tiene un intervalo de valores determinado por su tipo de datos y es independiente de los intervalos de valores correspondientes a los demás miembros.
UShort UInt16 2 bytes 0 a 65.535 (sin signo)
Tipos y Conversión de Datos 86
C# Type .NET Framework Type
bool System.Boolean
byte System.Byte
sbyte System.SByte
char System.Char
decimal System.Decimal
double System.Double
float System.Single
int System.Int32
uint System.UInt32
long System.Int64
ulong System.UInt64
object System.Object
short System.Int16
ushort System.UInt16
string System.String
Referencia
Extraído del siguiente URL:
http://msdn.microsoft.com/en-
us/library/47zceaw7(v=vs.110).aspx?sentenceguid=5fc732311905cb27e82d67f4f65
11f7f
http://msdn.microsoft.com/en-us/library/ya5y69ds(v=vs.110).aspx
Tipos y Conversión de Datos 87
2. Variables
Las variables se utilizan para almacenar valores temporalmente durante la ejecución de una aplicación. Las variables tienen un nombre (palabra que se utiliza para referirse al valor que contiene la variable) y un tipo de dato (que determina la clase de dato que la variable puede almacenar).
2.1 Declaración de Variables En Visual Basic, declarar una variable es indicar al programa algo de antemano. Se declara una variable mediante la instrucción Dim proporcionando un nombre a la variable según la siguiente sintaxis:
Dim <nombre-variable> [As tipo]
Dim <nombre-variable> [As tipo] = <valor>
Tipos y Conversión de Datos 88
Ejemplos
Dim sNombre as String
Dim iFactorial as Integer =0
Dim dFechaIni, dFechaFin as Date
Dim sDireccion, sRUC, sRSocial as String
En C#, se emplea el tipo de dato a definir y el nombre de la variable, opcionalmente puede dársele un valor de inicio.
<tipo de dato> <nombre-variable>;
<tipo de dato> <nombre-variable> = <valor>;
Ejemplos
float fSueldo;
int iNota = 0;
string sNombre = “”;
string sCodigo = “XXX”;
bool bSw = true;
Recuerde
Las variables que se declaran en un procedimiento solo existen mientras se
ejecuta el procedimiento. Cuando termina el procedimiento, desaparece el valor
de la variable. Además, el valor de una variable de un procedimiento es local a
dicho procedimiento; es decir, no puede tener acceso a una variable de un
procedimiento desde otro procedimiento. Estas características le permiten
utilizar los mismos nombres de variables en distintos procedimientos sin
preocuparse por posibles conflictos o modificaciones accidentales.
Tipos y Conversión de Datos 89
2.2 Nombres de variable El nombre de una variable debe cumplir con los siguientes requisitos:
Debe comenzar con una letra.
No puede incluir un punto o un carácter de declaración de tipo ($,&,!,%,#,@).
No debe exceder de 255 caracteres.
Debe ser única en el mismo ámbito que es el intervalo desde el que se puede hacer
referencia a la variable (un procedimiento, formulario, etc.)
De ser posible, utilice prefijos para identificar mejor el tipo de datos de una variable.
2.3 Ámbito de las Variables El alcance de una variable define en qué partes del código son reconocidas. Cuando declara una variable en un procedimiento, solo el código de dicho procedimiento puede tener acceso o modificar el valor de la variable; tiene un alcance local al procedimiento. A veces, sin embargo, se necesita utilizar una variable con un alcance más general como aquella cuyo valor está disponible para todos los procedimientos del mismo módulo o incluso para todos los procedimientos de toda la aplicación. Visual Basic y C# le permiten especificar el alcance de una variable cuando la declara. Dependiendo de cómo se declara, una variable tiene como alcance un procedimiento (local) o un módulo (clase en C#). Esto se detalla a continuación:
Visual Basic .Net C# Descripción del ámbito
Private Private Accesible dentro del mismo módulo, clase o estructura.
Friend Internal Accesible desde dentro del mismo proyecto, pero no desde fuera de él.
Protected Protected Accesible desde dentro de la misma clase o desde una clase derivada de ella.
Protected Friend protected internal Accesible desde clases derivadas o desde dentro del mismo proyecto, o ambos.
Public public
Accesible desde cualquier parte del mismo proyecto, desde otros proyectos que hagan referencia al proyecto, y desde un ensamblado generado a partir del proyecto.
2.3.1 Variables utilizadas en un procedimiento
En VB, las variables al nivel de procedimiento, sólo se reconocen en el procedimiento en el que se han declarado. Se les conoce también como variables locales. Se declaran mediante la palabra clave Dim o Static.
Ejemplo Dim intTemp As Integer ‘ó
Static intContador As Integer
Tipos y Conversión de Datos 90
Los valores de variables locales declaradas con Static existen mientras se ejecuta la aplicación, mientras que las variables declaradas con Dim solo existen mientras se ejecuta el procedimiento. En C#, se da el mismo caso que en VB. Se puede emplear la palabra reservada private, el cual es el ámbito por defecto. Si desea establecer una variable de alcance público, puede emplear la palabra reservada public.
Ejemplo
int Cantidad=0;
prívate float Promedio;
bool Miflag=true;
public int Contador=0;
2.3.2 Variables utilizadas en un módulo
De forma predeterminada, una variable al nivel de módulo (o clase en C#) está disponible para todos los procedimientos del módulo, pero no para el código de otros módulos. Cree variables a nivel de módulo declarándolas con la palabra reservada Private al principio del módulo. Ejemplos En VB
Private intTemp As Integer
En C#
prívate int intNota1,intNota2;
A nivel de módulo, no hay diferencia entre Private y Dim, pero es preferible usar Private porque contrasta con Public y hace que el código sea más fácil de comprender.
2.3.3 Variables utilizadas por todos los módulos
Para hacer que una variable al nivel de módulo esté disponible para otros módulos, utilice la palabra clave Public para declararlas. Los valores de las variables públicas están disponibles para todos los procedimientos de la aplicación. Al igual que todas las variables a nivel del módulo, las variables públicas se declaran al principio del módulo.
Tipos y Conversión de Datos 91
Ejemplo En VB
Public intTemp As Integer
En C#
Public int intVeces=0;
Recuerde
No puede declarar variables públicas en un procedimiento asociado a un
evento, solo puede hacerlo en la sección de declaraciones de un módulo o
clase.
Tipos y Conversión de Datos 92
3. Constantes
A menudo verá que el código contiene valores constantes que reaparecen una y otra vez. O puede que el código dependa de ciertos números que resulten difíciles de recordar (números que, por sí mismos, no tienen un significado obvio). En estos casos, puede mejorar mucho la legibilidad del código y facilitar su mantenimiento si utiliza constantes. Una constante es un nombre significativo que sustituye a un número o una cadena que no varía. Aunque una constante recuerda ligeramente a una variable, no puede modificar una constante o asignarle un valor nuevo como ocurre con una variable. Hay dos orígenes para las constantes:
Constantes intrínsecas o definidas por el sistema, proporcionadas por Visual Basic.
Las constantes simbólicas o definidas por el usuario se declaran mediante la
instrucción Const.
3.1 Declaración de constantes La sintaxis para declarar una constante es la siguiente:
‘En Visual Basic
[Public|Private] Const <nombre_constante> [As tipo] = <valor>
// En C#
[public|private] const <tipo> <nombre_constante> = <valor>;
Recuerde que en C# los delimitadores de acceso Private y Public se deben escribir en minúsculas, es decir private y public. Del mismo modo la palabra reservada Const en VB, en C# se debe escribir como const.
Tipos y Conversión de Datos 93
El argumento nombre_constante es un nombre simbólico válido (las reglas son las mismas que para crear nombres de variable) y la expresión está compuesta por constantes y operadores de cadena o numéricos; sin embargo, no puede utilizar llamadas a funciones en expresión. Una instrucción Const puede representar una cantidad matemática o de fecha y hora:
Const Pi = 3.14159265358979
Public Const IGV As Single = 0.18
Const FechaSalida = #1/1/95#
Se puede utilizar también la instrucción Const para definir constantes de cadena.
Public Const Version = “ 07.10.A”
Const RazonSocial = “Empresa Orion S.A.”
Puede colocar más de una declaración de constante en una única línea si las separa con comas.
Public Const Pi=3.14, MaxPlanetas=9, PobMundial=6E+09
A menudo, la expresión del lado derecho del signo igual (=) es un número o cadena literal, pero también puede ser una expresión que dé como resultado un número o una cadena (aunque la expresión no puede contener llamadas a funciones). Puede incluso definir constantes en términos de constantes previamente definidas.
Const conPi2 = conPi * 2
Una vez que defina las constantes, puede colocarlas en el código para hacerlo más legible. Ejemplo
If numPersonas > conPopMundial Then
A continuación, se muestran algunos ejemplos en C#.
const int meses = 12;
const int semanas = 52;
const int dias = 365;
private const double diasPorSemana = dias / semanas;
public const double diasPorMes = dias / meses;
Tipos y Conversión de Datos 94
3.2 Alcance de las constantes definidas por el usuario Una instrucción Const tiene igual alcance que una declaración de variable y se le aplican las mismas reglas como las siguientes:
Para crear una constante que solo exista en un procedimiento, declárela dentro del
procedimiento.
Para crear una constante disponible para todos los procedimientos de un módulo,
pero no para el código que está fuera del módulo, declárela en la sección inicial del
módulo.
Para crear una constante disponible en toda la aplicación, declare la constante en la
parte inicial de un módulo estándar y coloque delante de Const la palabra clave
Public. No se pueden declarar las constantes públicas en una clase o en un
formulario.
Tipos y Conversión de Datos 95
4. Operadores
En Visual Studio 2012, como en otros entornos de programación se manejan operadores para elaborar expresiones matemáticas o lógicas. Estos son los siguientes:
4.1 Aritméticos
En VB
^ Potencia
* Multiplicación
/ División
Mod Residuo entero (Ejm: A Mod B)
+ Suma
- Resta
& Concatenación de cadenas
En C#
Math Pow(valor, potencia)
* Multiplicación
/ División
% Residuo entero (Ejm: A % B)
+ Suma o Concatenación de cadenas
- Resta
Tipos y Conversión de Datos 96
4.2 Comparación o Relación
En VB
= Igual
<> Distinto
< Menor que
> Mayor que
<= Menor o igual
>= Mayor o igual
Like Compara dos cadenas:
* Cero o más caracteres (Ejm: cad Like “ma*”)
? Cualquier caracter
# Cualquier dígito (0-9)
[lista] Cualquier caracter en lista
[¡lista] Cualquier caracter que no está en lista
Is Usado para comparar dos variables de referencia a objetos
En C#
== Igual
!= Distinto
< Menor que
> Mayor que
<= Menor o igual
>= Mayor o igual
Tipos y Conversión de Datos 97
4.3 Lógicos
En VB
And “Y” lógico
AndAlso Evalúa por medio del operador And 2 condiciones, pero si la primera de ellas no se cumple, ya no evalúa la segunda.
Or “O” lógico
OrElse Evalúa 2 condiciones por medio del operador Or, pero si la primera de ellas se cumple, ya no evalúa la segunda.
Xor “O” exclusivo
Not Negación
En C#
& Y lógico
&& Y condicional
| O lógico
|| O condicional
^ O exclusivo
! Negación
Tipos y Conversión de Datos 98
5. Conversión de Datos
Podemos utilizar funciones de conversión para forzar el resultado de una operación a un tipo de datos particular en lugar del tipo de datos por defecto. Por ejemplo, podemos convertir un valor de tipo cadena a un valor entero. Las funciones de conversión permiten convertir explícitamente un valor de un tipo de datos a otro.
5.1 Funciones de conversión Visual Basic ofrece una amplia lista de funciones y clases de conversión, incluyendo las descritas en la siguiente tabla:
Función de Conversión
Convierte en Tipo de Dato
Tipos de datos para conversión permitidos
CStr String Cualquier tipo numérico, Boolean, Char, Date, Objetc, etc.
Cint Integer Cualquier tipo numérico, Boolean, Char, Date, Objetc, etc.
CDbl Double Cualquier tipo numérico, Boolean, Char, Date, Objetc, etc.
Cdate Date String, Object
Ctype Tipo Especificado El mismo tipo que el permitido para la función de conversión correspondiente.
System.Convert Tipo Especificado Permite convertir datos de un tipo a otro.
Tipos y Conversión de Datos 99
El código siguiente muestra cómo utilizar varias funciones de conversión:
' Conversión de un entero en cadena
Dim myVariable As Integer
myVariable = 1234
MessageBox.Show(myVariable)
MessageBox.Show(CStr(myVariable) & "1")
‘ Conversión de un entero en doble
Dim myVariable As Double
myVariable = 567.9894
MessageBox.Show(myVariable)
MessageBox.Show(CInt(myVariable))
' Conversión de cadena a fecha
Dim myVariable As String
myVariable = "February 12, 1992"
MessageBox.Show(myVariable)
MessageBox.Show(CDate(myVariable))
El siguiente ejemplo muestra cómo utilizar las funciones de conversión CStr y CDbl para escribir código que convierte pies y pulgadas a metros.
Dim pies As Double, pulgadas As Double
Dim milimetros As Double, metros As Double
‘ Extraemos los valores desde las cajas de texto
‘La propiedad Text de las cajas son cadenas y usando CDbl() las convertiremos a Double
pies = CDbl(PiesTextBox.Text)
pulgadas = CDbl(IPulgadasTextBox.Text)
‘Ahora convertiremos pies y pulgadas en milímetros.
Tipos y Conversión de Datos 100
milimetros = (pulgadas * MilimetrosPorPulgadas) + _
(Pies * MilimetrosPorPulgadas * PulgadasPorPie)
‘ Conversión de milímetros a metros.
metros = milimetros / 1000
‘Mostramos el resultado en un label, cuya propiedad Text es una cadena, por lo
‘que usaremos la función CStr().
Resultado.Text = CStr(metros)
Para el ejemplo, las variables MilimetrosPorPulgadas y PulgadasPorPie, se asumen que ya se les han asignado sus valores des un módulo. Para el caso de C# e incluso el mismo VB, se sugiere emplear la clase Convert. Ambos lenguajes reconocen esta clase, dado que es abastecida por la propia plataforma .Net Framework y no es una función nativa del lenguaje (vea la nota al final de este tema). Esta clase permite convertir valores a diferentes tipos de dato, obviamente si se mantiene la congruencia del caso. En el siguiente segmento de código se emplea la clase Convert: En VB
Dim dNumero As Double
dNumero = 23.15
Try
'Este ejemplo convierte a entero el valor 23.15
Dim iNumber As Integer
iNumber = System.Convert.ToInt32(dNumber)
' Y a cadena el valor 23.15
Dim strNumber As String
strNumber = System.Convert.ToString(dNumber)
Catch exp As Exception
Messagebox.show (ex.message)
End Try
Tipos y Conversión de Datos 101
En C#
double dNumero;
dNumero = 23.15;
try
{
//Este ejemplo convierte a entero el valor 23.15
int iNumber;
iNumber = System.Convert.ToInt32(dNumber);
// Y a cadena el valor 23.15
string strNumber;
strNumber = System.Convert.ToString(dNumber);
}
catch (Exception ex)
{
Messagebox.show (ex.message);
}
Funcionalmente Convert y CType en Visual Basic trabajan igual, pero se recomienda emplear la clase Convert dado que se puede emplear en cualquier aplicación desarrollada en NET Framework en cualquiera de los lenguajes de la plataforma, no así CType que es una función propia del lenguaje Visual Basic.