44
Introducción a la Programación 7. Introducción al lenguaje de programación C#

7. Introducción al lenguaje de programación C#. 7.1 Introducción. 7.2 Mi primer Programa. 7.3 Microsoft.NET Framework. 7.4 Aspectos Léxicos

Embed Size (px)

Citation preview

Page 1: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Introducción a la Programación

7. Introducción al lenguaje de programación C#

Page 2: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Contenidos

7.1 Introducción. 7.2 Mi primer Programa. 7.3 Microsoft .NET Framework. 7.4 Aspectos Léxicos. 7.5 Declaración. 7.6 Tipos de Datos.

Page 3: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

7.1 Introducción.

Page 4: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Introducción al lenguaje C#

Lenguaje de programación moderno, “orientado a objetos” diseñado por Anders Hejlsberg para Microsoft y la plataforma .NET.

En diciembre del 2001 se especifica el lenguaje en la ECMA.

En noviembre de 2005 aparece la versión 2.0. En noviembre de 2007 aparece la versión 3.0.

El objetivo era combinar la potencia de C++ con la sencillez de lenguajes como visual basic.

Page 5: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Ventajas frente a C++

Recolección de basura automática.

Eliminación del uso de punteros.

No hay que preocuparse de archivos .h, y con ello la declaración de métodos y clases.

Es más limpio, no existen funciones ni variables globales, todo pertenece a una clase.

Page 6: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Mitos y Realidades

¿Es propiedad de Microsoft?◦ No, Microsoft sólo lo creó. Hoy en día C# y el

Framework .NET son parte del estándar de ECMA y de ISO.

¿Es sólo para entornos Windows?◦ No. Es cierto que con Visual Studio se pueden crear

aplicaciones sólo para Windows, pero existen otras IDEs, como Mono para Linux.

Page 7: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Microsoft XNA Game Studio Express

Page 8: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Visual 3D .NET

Page 9: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Motores de Videojuegos

El incremento de programadores en el lenguaje C# ha hecho que la mayoría de los motores de videojuegos desarrolle un wrapper para poder programar un videojuego en C#.

Page 10: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

7.2 Mi primer programa.

Page 11: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Hola Mundo en Consola

Page 12: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Hola Mundo en Consola

Page 13: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Main

Un programa tiene un conjunto de clases, pero sólo puede tener una clase que contenga al método Main.

Main es la entrada al programa; es decir, el primer código que se ejecuta

Page 14: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Hola Mundo en Windows Form

Page 15: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Hola Mundo en Windows Form

Page 16: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Hola Mundo en Windows Form

Page 17: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

7.3 Microsoft .NET Framework.

Page 18: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Microsoft .NET Framework

El Framework de .Net es una infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante esta herramienta se ofrece un entorno de ejecución altamente distribuido, que permite crear aplicaciones robustas y escalables. Los principales componentes de este entorno son:

Lenguajes de compilación. Biblioteca de clases de .Net CLR (Common Language Runtime)

Page 19: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Microsoft .NET Framework

Page 20: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Common Language Runtime (CLR) 

Es el entorno de ejecución en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes.

La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes soportados por .Net en un mismo código, llamado código intermedio (MSIL, Microsoft Intermediate Lenguaje).

Page 21: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Common Language Runtime (CLR) 

El código generado en MSIL no es código máquina y por ello no puede ejecutarse directamente. Se necesita otro paso en el que una herramienta denominada compilador JIT (Just-In-Time) genera el código máquina real que se ejecuta en la plataforma que tenga la computadora.

Page 22: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Biblioteca de Clases

Cuando se programa una aplicación, como un videojuego por ejemplo, se necesitan realizar acciones como dibujar en pantalla, manipulación de archivos, acceso a datos, manejo del input, conocer el estado del sistema, etc.

El Framework organiza toda la funcionalidad del sistema operativo en un espacio de nombres jerárquico de forma que a la hora de programar resulta bastante sencillo encontrar lo que se necesita.

Page 23: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Biblioteca de Clases

Page 24: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Namespace SystemEspacio de nombres Utilidad de los tipos de datos que contieneSystem Tipos muy frecuentemente usados, como los los tipos básicos,

tablas, excepciones, fechas, números aleatorios, recolector de basura, entrada/salida en consola, etc.

System.Collections Colecciones de datos de uso común como pilas, colas, listas, diccionarios, etc.

System.Data Manipulación de bases de datos. Forman la denominada arquitectura ADO.NET.

System.IO Manipulación de ficheros y otros flujos de datos.System.Net Realización de comunicaciones en red.System.Reflection Acceso a los metadatos que acompañan a los módulos de

código.

System.Runtime.Remoting Acceso a objetos remotos.System.Security Acceso a la política de seguridad en que se basa el CLR.System.Threading Manipulación de hilos.System.Web.UI.WebControls Creación de interfaces de usuario basadas en ventanas para

aplicaciones Web.

System.Windows.Forms Creación de interfaces de usuario basadas en ventanas para aplicaciones estándar.

System.XML Acceso a datos en formato XML.

Page 25: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

7.4 Aspectos Léxicos.

Page 26: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Identificadores

Son los nombres con los que se identifica cada uno de los componentes de un programa:◦ Clases◦ Instancias◦ Namespaces◦ Métodos◦ Variables y constantes◦ Estructuras

Page 27: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Identificadores: Reglas Cada identificador puede contener:1. Letras, menos la ñ ni letras acentuadas.2. Dígito numéricos.3. Guión bajo.4. Si se quiere usar una palabra clave como identificador

se debe anteponer @.

C# es case sensible.

Page 28: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Identificadores: Ejemplos

JugadormiBalaisCollisionanimacion_caminarenemigo1enemigo2enemigo3arrays_enemigosvidaspuntaje

Page 29: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

PalabrasReservadas

abstract event new struct

as explicit null switch

base extern object this

bool false operator throw

break finally out true

byte fixed override try

case float params typeof

catch for private uint

char foreach protected ulong

checked goto public unchecked

class if readonly unsafe

const implicit ref ushort

continue in return using

decimal int sbyte virtual

default interface sealed volatile

delegate internal short void

do is sizeof whi le

double lock stackalloc  

else long static  

enum namespace string  

get partial set

value where yield

 Palabras clave contextuales

Page 30: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Comentarios Sirve para entender de mejor manera el código. Sirve para quienes posteriormente leerán el

código. Sirve para que el programador entienda de

inmediatamente códigos que ha realizado con antigüedad.

Hace más limpia la programación.

Page 31: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Comentarios

Los comentarios son ignorados por el compilador.

Tipos de comentarios:

De línea://Este es un comentario de una linea

De varias líneas:/* Este es un comentario demas de una linea */

Page 32: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

7.5 Declaración.

Page 33: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Declaración de una clase y sus elementos

Todos los elementos en cualquier programa en C# pertenecen a una clase.

[modificadores] class <className> [: nombreClaseBase]{

[cuerpo de la clase]}

Page 34: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Ejemplo

Class Jugador{

private String nick;private int x, y;

public void MostrarDatos(){

Console.WriteLine(“El jugador {0} está en la posición ({1},{2})” , nombre, x, y);}

}

Page 35: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

7.6 Tipos de Datos.

Page 36: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Tipos de DatosTipo de Datos Descripcion Ejemplo

object Es el tipo base de todos los tipos object obj=null;

string Secuencia de caracteres Unicode string st="Sierra";

sbyte entero con signo de 8 bit (1 byte) sbyte val=12;

short entero con signo de 16 bit short val=12;

int entero con signo de 32 bit int val=12;

long entero con signo de 64 bitlong val=12;long val2=34L;

bool tipo booleano (cierto - falso)bool opc=false;bool opc=true;

char tipo caracter, se corresponde con un Unicode char val='h';

byte entero sin signo de 8 bitbyte val=12;byte val2=12U;

ushort entero sin signo de 16 bitushort val=12;ushort val2=12U;

uint entero sin signo de 32 bituint val=12;uint val2=12U;

ulong entero sin signo de 64 bit

ulong val=12;ulongval2=12U;ulong val3=24Lulong val4=34UL

float numero en punto flotante con precision simplefloat val=12.23Ffloat val2=12.23

double numero en punto flatante con precision dobledouble val=12.23double val2=12.23D

decimal numero decima con 28 digitos significativos decimal val=1.23M

Page 37: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Tipos de Datos

Page 38: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Tipos de datos enteros

Son tipos de datos que representan SÓLO valores enteros, que pueden ser negativos o positivos.

Se puede comparar con el conjunto N o Z.

Tipos de datos: byte, short, int, long.

Ejemplos:short vidas;int porcentajeDanio;long puntaje;

Page 39: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Tipos de datos de punto flotante

Son tipos de datos que representan SÓLO valores con parte entera y con parte decimal.

Se puede comparar con el conjunto R.

Tipos de datos: float, double, decimal.

Ejemplos:float anguloOrientacion;double velocidad;decimal posicionX;

Page 40: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Tipos de datos lógicos

Son tipos de datos que representan SÓLO 2 valores: true o false.

Tipo de datos: boolean.

Ejemplos:bool continuar;bool muerto;bool pause;

Page 41: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Tipos de datos de carácter

Son tipos de datos que representan caracteres.

Tipo de datos: char.

Ejemplos:char letra;char marca;

Page 42: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Tabla ASCII

Page 43: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Códigos de caracteres especialesCarácter CÓDIGO DE ESCAPE

UNICODECódigo de escape especial

Comilla simple \u0027 \'

Comilla doble \u0022 \″

Carácter nulo \u0000 \0

Alarma \u0007 \a

Retroceso \u0008 \b

Salto de página \u000C \f

Nueva línea \u000A \n

Retorno de carro \u000D \r

Tabulación horizontal \u0009 \t

Tabulación vertical \u000B \v

Barra invertida \u005C \\

Page 44: 7. Introducción al lenguaje de programación C#.  7.1 Introducción.  7.2 Mi primer Programa.  7.3 Microsoft.NET Framework.  7.4 Aspectos Léxicos

Preguntas ¿?