Está en la página 1de 14

UNIVERSIDAD ABIERTA Y A DISTANCIA DE MÉXICO

INGENIERÍA EN DESARROLLO DE SOFTWARE

ASIGNATURA:

PROGRAMACIÓN NET I

UNIDAD I: INTRODUCCIÓN A .NET

ACTIVIDAD 2: TIPOS DE DATOS Y OPERADORES

ALUMNO: SERGIO VARGAS OLIVARES

DOCENTE: FABIAN GALVEZ GONZALEZ

División de Ciencias Exactas, Ingeniería y Tecnología


Propósito:
Identificar los tipos de datos y operadores manejados por el lenguaje de programación C#,
para conocer sus características y forma de aplicación, mediante segmentos de código.
Después de analizar los mecanismos para la conversión entre los diversos tipos de datos, su
sintaxis y restricciones.
1. Identifica los tipos de datos manejados por C# y explica su definición, rango de
valores y características.
Un dato es una representación simbólica de información, la cual puede ser cualitativa o
cuantitativa y que facilita la deducción de un hecho. En informática un dato son números,
letras o símbolos que describen objetos, condiciones o alguna situación.
Debido a que .NET es un lenguaje orientado a objetos tiene dos tipos de datos:

• Tipo valor: Estos son los tipos de datos primitivos integrados, como char, int y float,
así como también los tipos definidos por el usuario declarados con la estructura.

• Tipo referencia: Clases y otros tipos de datos complejos que se construyen a partir
de los tipos primitivos. Las variables de estos tipos no contienen una instancia del tipo,
sino sólo una referencia a una instancia.
En la imagen siguiente se ilustran los tipos de datos:

C# tiene 13 tipos valor básicos, cabe mencionar que al usarlos se pueden convertir a object y
no deben ser null. En la tabla siguiente se proporciona la lista de tipos de datos de C# y sus
alias:
Nombre Clase .NET Tipo Ancho Intervalo (bits)

byte Byte Entero sin signo 8 0 a 255

sbyte SByte Entero con signo 8 -128 a 127

int Int32 Entero con signo 32 -2.147.483.648 a 2.147.483.647

uint UInt32 Entero sin signo 32 0 a 4294967295

short Int16 Entero con signo 16 -32.768 a 32.767

ushort UInt16 Entero sin signo 16 0 a 65535

long Int64 ntero con signo 64 -922337203685477508 a 922337203685477507

ulong UInt64 Entero sin signo 64 0 a 18446744073709551615

float SIngle Tipo de punto flotante de precisión simple 32 -3,402823e38 a 3,402823e38

double Double Tipo de punto flotante de precisión doble 64 -1,79769313486232e308 a 1,79769313486232e308

char Char Un carácter Unicode 16 Símbolos Unicode utilizados en el texto

bool Boolean Tipo Boolean lógico 8 True o false

object Object Tipo base de todos los otros tipos

string String Una secuencia de caracteres

Tipo preciso fraccionario o integral, que


decimal Decimal puede representar números decimales con 29 128 ±1.0 × 10e−28 a ±7.9 × 10e28
dígitos significativos
Algunos ejemplos de los tipos valor son los siguientes:

Tipo

bool bln=true;

byte byt1=22;

char ch1=‘x’;

decimal
dec1=1.23M;

double dbl=1.23;

short sh=22;

int i=22;

long lng=22;

sbyte sb=22;

float f=1.23;

ushort us=22;

uint ui=22;

ulong ul=22;

Los tipos de referencia se refieren a los heap y tienen unas características especiales:

• Son seguros, es decir es imposible que una variable tipo referencia se refiera a una
posición no asignada de la memoria.

• La única forma de acceder es usando tipos punteros en código inseguro

• Los tipos referencia pueden ser : clases, interfaces, arreglos

• Un tipo referencia puede referirse a una instancia null.

Algunos ejemplos de tipo referencia son los siguientes:


Object o = new Object();
string s = @’C:\WINNT’
2. Identifica los operadores aritméticos, lógicos y relacionales y explica su definición,
funcionalidad y características.
C# proporciona muchos operadores, que son símbolos que describen las operaciones
(matemáticas, indización, etc.) que se realizan dentro de una sentencia. A continuación, se
muestran los diferentes tipos de operadores disponibles en C#:
Operadores principales:

• x.y: acceso a miembros.

• x??.y: acceso a miembros condicionales nulos. Devuelve null si el operando izquierdo


es null.

• x?[y]: acceso a índices condicionales nulos. Devuelve null si el operando izquierdo


es null.

• f(x): invocación de función.

• a[x]: indización de objeto agregado.

• x++: incremento de postfijo. Devuelve el valor de x y, a continuación, actualiza la


ubicación de almacenamiento con el valor de x que es uno mayor (normalmente
agrega el entero 1).

• x--: decremento de postfijo. Devuelve el valor de x; a continuación, actualiza la ubicación


de almacenamiento con el valor de x que es uno menos (normalmente resta el entero
1).

• new: creación de instancias de tipo.

• typeof: devuelve el objeto System.Type que representa el operando.

• checked: habilita la comprobación de desbordamiento para operaciones con enteros.

• unchecked: deshabilita la comprobación de desbordamiento para operaciones con


enteros. Este es el comportamiento predeterminado del compilador.

• default(T): devuelve el valor inicializado predeterminado de tipo T, null para tipos de


referencia, cero para tipos numéricos y cero o null en miembros para tipos de
estructura.

• delegate: declara y devuelve una instancia de delegado.

• sizeof: devuelve el tamaño en bytes del operando de tipo.

• ->: desreferenciación del puntero combinada con acceso a miembros.


Operadores unitarios:

• +x: devuelve el valor de x.

• -x: negación numérica.

• !x: negación lógica.

• ~x: complemento bit a bit.

• ++x: incremento de prefijo. Devuelve el valor de x después de actualizar la ubicación


de almacenamiento con el valor de x que es uno mayor (normalmente agrega el
entero 1).

• --x: decremento de prefijo. Devuelve el valor de x después de actualizar la ubicación


de almacenamiento con el valor de x que es uno menos (normalmente resta el entero
1).

• (T)x: conversión de tipos.

• await: espera una Task.

• &x: dirección de.

• *x: desreferenciación.
Operadores multiplicativos:

• x * y: multiplicación.

• x / y: división. Si los operandos son enteros, el resultado es un entero que se trunca


hacia cero (por ejemplo, -7 / 2 is -3).

• x % y: módulo. Si los operandos son enteros, devuelve el resto de dividir x entre y. Si q


= x / y y r = x % y, entonces x = q * y + r.
Operadores de suma:

• x + y: suma.

• x – y: resta.
Operadores de desplazamiento

• x << y: desplaza los bits a la izquierda y rellena con cero a la derecha.

• x >> y: desplaza los bits a la derecha. Si el operando izquierdo es int o long, los bits de
la izquierda se rellenan con el bit de signo. Si el operando izquierdo es uint o ulong,
los bits de la izquierda se rellenan con cero.
Operadores de comprobación de tipos y relacionales

• x < y: menor que (true si x es menor que y).

• x > y: mayor que (true si x es mayor que y).

• x <= y: menor o igual que.

• x >= y: mayor o igual que.

• is: compatibilidad de tipos. Devuelve true si el operando izquierdo.

• as: conversión de tipos. Devuelve el operando izquierdo convertido al tipo especificado


por el operando derecho.
Operadores de igualdad

• x == y: igualdad.

• x != y: distinto de. Vea el comentario de ==. Si un tipo sobrecarga ==, debe


sobrecargar !=.
Operador lógico AND

• x & y: AND lógico o bit a bit.

• x ^ y: XOR lógico o bit a bit..


Operador lógico OR

• x | y: OR lógico o bit a bit.


Operador condicional AND

• x && y: AND lógico. Si el primer operando es false, C# no evalúa el segundo


operando.
Operador condicional OR

• x || y: OR lógico. Si el primer operando es true, C# no evalúa el segundo operando.


Operador de uso combinado de null

• x ?? y: devuelve x si no es null; de lo contrario, devuelve y.


Operador condicional

• t ? x : y: si la prueba t es true, evalúa y devuelve x; en caso contrario, evalúa y


devuelve y.
Operadores de asignación y Lambda

• x = y: asignación.
• x += y: incremento. Agregue el valor de y al valor de x, almacene el resultado en x y
devuelva el nuevo valor. Si x designa un event, y debe ser una función adecuada que
C# agregue como un controlador de eventos.

• x -= y: decremento. Reste el valor de y del valor de x, almacene el resultado en x y


devuelva el nuevo valor. Si x designa un event, y debe ser una función adecuada que
C# quite como un controlador de eventos.

• x *= y: asignación de multiplicación. Multiplique el valor de y por el valor de x,


almacene el resultado en x y devuelva el nuevo valor.

• x /= y: asignación de división. Divida el valor de x por el valor de y, almacene el


resultado en x y devuelva el nuevo valor.

• x %= y: asignación de módulo. Divida el valor de x por el valor de y, almacene el resto


en xy devuelva el nuevo valor.

• x &= y: asignación de AND. AND el valor de y con el valor de x, almacene el resultado


en xy devuelva el nuevo valor.

• x |= y: asignación de OR. OR el valor de y con el valor de x, almacene el resultado


en x y devuelva el nuevo valor.

• x ^= y: asignación de XOR. XOR el valor de y con el valor de x, almacene el resultado


en x y devuelva el nuevo valor.

• x <<= y: asignación de desplazamiento a la izquierda. Desplace el valor de x a la


izquierda y lugares, almacene el resultado en x y devuelva el nuevo valor.

• x >>= y: asignación de desplazamiento a la derecha. Desplace el valor de x a la


derecha y posiciones, almacene el resultado en x y devuelva el nuevo valor.

• =>: declaración lambda

3. Identifica las conversiones, explícitas e implícitas que puedes realizar.


En los lenguajes de programación es posible transformar el tipo de dato de una variable u
objeto en otro diferente al original con el que fue declarado, es decir que en ocasiones
necesitemos el valor de una variable, pero con un tipo de dato diferente, y esto se logra
haciendo esas conversiones de tipo de datos. A continuación, se muestra una tabla con los
tipos de conversión más usados y permitidos:
Del tipo Al tipo

sbyte short, int, long, float, double o decimal

short, ushort, int, uint, long, ulong, float, double o


byte
decimal

short int, long, float, double o decimal

ushort int, uint, long, ulong, float, double o decimal

int long, float, double o decimal

uint long, ulong, float, double o decimal

long float, double o decimal

float double

ulong float, double o decimal

Cabe mencionar que estas conversiones son realizadas entre los tipos de datos que no
produzcan perdida de información.
Algunos ejemplos de conversión son los siguientes:
int entero = (int)valor_long;
int cantidad = Int32.Parse(“60”);
string cadena = entero.ToString();
4. Ejemplifica la aplicación de los tipos de datos en la declaración de variables y la
utilización de los operadores aritméticos, relacionales y lógicos mediante segmentos de
código, así como la relación entre las conversiones explícitas e implícitas.

Ejemplo de declaración de variables

Ejemplo de utilización de operadores aritméticos:

Ejemplo de utilización de operadores relacionales:

Ejemplo de utilización de operadores lógicos:


Ejemplo de conversión implícita:

Ejemplo de conversión explicita:


Conclusiones:
Es muy importante conoces los tipos de datos y los operadores que existen en C# y como
declararlos, ya que esto nos evitara dolores de cabeza. Una conversión de tipo de datos es
tomar el valor que se le ha asignado a una variable y convertir ese tipo de información en otro
que de acuerdo a las necesidades del programa este lo requiera; por ejemplo, mostrar un
entero como texto, etc.
Bibliografía:
Información general acerca de .NET Framework. Recuperado de :
https://msdn.microsoft.com/es-mx/library/zw4w595w(v=vs.110).aspx

Casting and Type Conversions. Recuperado de:


https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/casting-and-type-
conversions

C# Operators. Recuperado de:


https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/

Visual basic .NET. Recuperado de:


https://jjparra.wordpress.com/category/visual-basicnet/

Michael Halvorson. (2002). Microsoft Visual .NET Aprenda Ya. Madrid: McGraw-Hill.

También podría gustarte