Introducción A C# (VersióN Charla)

Post on 12-Jun-2015

869 views 15 download

description

Introduccion a C#

Transcript of Introducción A C# (VersióN Charla)

Introducción a C#Introducción a C#

José Antonio Jiménez CarmonaJosé Antonio Jiménez Carmona

Club .NET – Universidad de Sevilla

ÍNDICEÍNDICE

¿Qué es .NET?¿Qué es .NET?¿Qué es C#?¿Qué es C#?Características de C#Características de C#Estructura de un programa en C#Estructura de un programa en C#VariablesVariablesArraysArraysConstantesConstantesOperadoresOperadoresSentenciasSentenciasHerencia de clasesHerencia de clasesHerencia de interfacesHerencia de interfacesDelegados y eventosDelegados y eventosExcepcionesExcepciones

¿Qué es .NET?¿Qué es .NET?

Tecnología software de MicrosoftTecnología software de Microsoft

Se trata básicamente del Se trata básicamente del Framework .NETFramework .NET (máquina virtual + (máquina virtual + librerías)librerías)

Aplicaciones productivas y Aplicaciones productivas y multiplataforma multiplataforma

¿Qué es C#?¿Qué es C#?

Lenguaje de propósito general, Lenguaje de propósito general, creado por Microsoftcreado por Microsoft

Lenguaje evolucionado de C++ y Lenguaje evolucionado de C++ y JavaJava

Ideal para .NETIdeal para .NET

Características de C#Características de C#

Lenguaje de alto nivel y sencilloLenguaje de alto nivel y sencillo

Orientado a objetosOrientado a objetos

Lenguaje modernoLenguaje moderno

Sintaxis casi igual a la de JavaSintaxis casi igual a la de Java““Si sabes Java, sabes C#”Si sabes Java, sabes C#”

Estructura de un programa en C#Estructura de un programa en C#

Función principalFunción principal

Librerías usadasLibrerías usadas

using System;using System;using System.Collections.Generic;using System.Collections.Generic;using System.Text;using System.Text;

namespace namespace MiMiPProgramarograma{{ public public class Programclass Program {{ public public static void Main(string[] args)static void Main(string[] args) {{

}} }}}}

Variables – ClasificaciónVariables – Clasificación

• Tipos primitivosTipos primitivos

• Tipos enumeradosTipos enumerados • EstructurasEstructuras

• ClasesClases

• InterfacesInterfaces

• ArraysArrays • DelegadosDelegados

Tratadas por Tratadas por valorvalor

Tratadas por Tratadas por referenciareferencia

Variables – Tipos primitivosVariables – Tipos primitivos

• • EEntero:ntero: intint numero; numero;numero = 4;numero = 4;

•• Carácter:Carácter: charchar c; c;c = ‘a’;c = ‘a’;

•• Cadena de caracteres:Cadena de caracteres: stringstring ciudad; ciudad;ciudad = “Sevilla”;ciudad = “Sevilla”;

•• Lógico:Lógico: boolbool exito; exito;exito = true;exito = true;

Variables – Tipos enumerados (1)Variables – Tipos enumerados (1)

Tipo de variable cuyos valores Tipo de variable cuyos valores posibles los elegimos nosotrosposibles los elegimos nosotros

Estructura:Estructura:

enumenum <nombre> { valor1, valor2,…, valorN } <nombre> { valor1, valor2,…, valorN }

Variables – Tipos enumerados (2)Variables – Tipos enumerados (2)

Ejemplo:Ejemplo:

enumenum Color { Color { azul, verde, rojo, amarilloazul, verde, rojo, amarillo } }

……

ColorColor c; c;

c = c = ColorColor.rojo;.rojo;

Variables – Clases (1)Variables – Clases (1)

Un Un objetoobjeto es un conjunto de datos y es un conjunto de datos y de métodos que permiten manipular de métodos que permiten manipular dichos datosdichos datos

Una Una claseclase es la definición de las es la definición de las características concretas de un características concretas de un determinado tipo de objetosdeterminado tipo de objetos

Variables – Clases (2)Variables – Clases (2)

Una clase se compone de:Una clase se compone de:

- AtributosAtributos Los datos del objeto Los datos del objeto

- MétodosMétodos La funcionalidad del objeto La funcionalidad del objeto

- ConstructoresConstructores Para valores iniciales Para valores iniciales

Variables - EstructurasVariables - Estructuras

Una Una estructuraestructura es lo mismo que una clase, es lo mismo que una clase, pero con tres diferencias principalmente:pero con tres diferencias principalmente:

- Se trata como variable por valorSe trata como variable por valor

- Es más rápida y ocupa menos memoriaEs más rápida y ocupa menos memoria

- No tiene herenciaNo tiene herencia

Variables – InterfacesVariables – Interfaces

Una Una interfazinterfaz especifica un “contrato” que especifica un “contrato” que una clase debe cumpliruna clase debe cumplir

- Contiene las cabeceras de los métodos y Contiene las cabeceras de los métodos y propiedades que debe tener dicha clasepropiedades que debe tener dicha clase

Una clase puede implementar 1 ó más Una clase puede implementar 1 ó más interfacesinterfaces

Variables - PropiedadesVariables - Propiedades

Una Una propiedadpropiedad es una mezcla entre el es una mezcla entre el concepto de atributo y el concepto de concepto de atributo y el concepto de método.método.

Externamente es accedida como si de un Externamente es accedida como si de un atributo normal se tratase, pero atributo normal se tratase, pero internamente es posible asociar código a internamente es posible asociar código a ejecutar en cada asignación o lectura de su ejecutar en cada asignación o lectura de su valor.valor.

ArraysArrays

Un Un arrayarray es un tipo especial de variable que es un tipo especial de variable que es capaz de almacenar de manera es capaz de almacenar de manera ordenada 1 ó más datos de un determinado ordenada 1 ó más datos de un determinado tipotipo

El valor de un array es una referenciaEl valor de un array es una referencia

Tienen algunos métodos y propiedades Tienen algunos métodos y propiedades útilesútiles

ConstantesConstantes

Una Una constanteconstante es una variable cuyo valor es una variable cuyo valor no puede cambiar durante la ejecución del no puede cambiar durante la ejecución del programaprograma

Hay que darles un valor inicial al Hay que darles un valor inicial al declararlas:declararlas:

constconst <tipoConstante> <nombreConstante> = <valor>; <tipoConstante> <nombreConstante> = <valor>;

Operadores (1)Operadores (1)

• Asignación ( Asignación ( == ) )

• Suma ( Suma ( ++ ) )• Resta ( Resta ( -- ) )• Producto ( Producto ( ** ) )• División ( División ( // ) )• Módulo ( Módulo ( %% ) )

• De asignaciónDe asignación

• AritméticosAritméticos

Operadores (2)Operadores (2)

• Igualdad ( Igualdad ( ==== ) )• Desigualdad ( Desigualdad ( !=!= ) )• Mayor que ( Mayor que ( >> ) )• Menor que ( Menor que ( < < ))• Mayor o igual que ( Mayor o igual que ( >=>= ) )• Menor o igual que ( Menor o igual que ( <=<= ) )

• RelacionalesRelacionales

Operadores (3)Operadores (3)

• AND con Evaluación Perezosa ( AND con Evaluación Perezosa ( &&&& ) )• AND sin Evaluación Perezosa ( AND sin Evaluación Perezosa ( && ) )• OR con Evaluación Perezosa ( OR con Evaluación Perezosa ( |||| ) )• OR sin Evaluación Perezosa ( OR sin Evaluación Perezosa ( | | ))• NOT ( NOT ( !! ) )• XOR ( XOR ( ^̂ ) )

• LógicosLógicos

Sentencias (1)Sentencias (1)

Instrucción IF:Instrucción IF:

Permite ejecutar ciertas instrucciones sólo si se cumple Permite ejecutar ciertas instrucciones sólo si se cumple una determinada condición.una determinada condición.

ifif (<condición>) (<condición>){{

<instrucciones><instrucciones>}}elseelse{{

<instrucciones><instrucciones>}}

Sentencias (2)Sentencias (2)

Instrucción SWITCHInstrucción SWITCH

Permite ejecutar un bloque de instrucciones según el valor Permite ejecutar un bloque de instrucciones según el valor de una cierta expresión.de una cierta expresión.

switch switch (<variable>)(<variable>)

{{

case <valorN>:case <valorN>:

<instrucciones><instrucciones>

}}

Sentencias (3)Sentencias (3)

Instrucción FOR:Instrucción FOR:

Sirve para repetir una serie de instrucciones un Sirve para repetir una serie de instrucciones un

determinado número de veces.determinado número de veces.

forfor (<inicialización>(<inicialización>; ; <condición><condición>; ; <modificación>)<modificación>)

{{

<instrucciones><instrucciones>

}}

Sentencias (4)Sentencias (4)

Instrucción WHILE:Instrucción WHILE:

Sirve repetir una serie de instrucciones mientras se cumpla Sirve repetir una serie de instrucciones mientras se cumpla una condición.una condición.

whilewhile (<condición>) (<condición>)

{{

<instrucciones><instrucciones>

}}

Sentencias (5)Sentencias (5)

Instrucción DO WHILE:Instrucción DO WHILE:

Sirve repetir una serie de instrucciones mientras se cumpla Sirve repetir una serie de instrucciones mientras se cumpla una condición y al menos se ejecutan 1 vez.una condición y al menos se ejecutan 1 vez.

dodo{{

<instrucciones><instrucciones>}}whilewhile (<condición>) (<condición>)

Sentencias (6)Sentencias (6)

Instrucción FOREACHInstrucción FOREACH

Sirve para recorrer arrays, como un iterador.Sirve para recorrer arrays, como un iterador.

foreachforeach ( (<tipoElemento> <elemento> <tipoElemento> <elemento> inin <array><array>))

{{

<instrucciones><instrucciones>

}}

Herencia de clases (1)Herencia de clases (1)

Permite definir nuevas clases a partir de otras ya definidasPermite definir nuevas clases a partir de otras ya definidas

Si una clase A hereda de otra clase B, el compilador Si una clase A hereda de otra clase B, el compilador incluye en A el contenido de Bincluye en A el contenido de B

Una clase no puede heredar de más de 1 claseUna clase no puede heredar de más de 1 clase

<modificador> class <nombreClaseHija> : <nombreClasePadre><modificador> class <nombreClaseHija> : <nombreClasePadre>{{

<miembrosHija><miembrosHija>}}

Herencia de clases (2)Herencia de clases (2)

ModificadoresModificadores

- Controlan la visibilidad de los atributos y métodos de una Controlan la visibilidad de los atributos y métodos de una claseclase

- Modificadores más importantes:Modificadores más importantes:

publicpublic:: Visible fuera de la claseVisible fuera de la clase privateprivate : : Visible sólo dentro de la claseVisible sólo dentro de la clase protectedprotected:: Visible dentro de la clase y de sus clases Visible dentro de la clase y de sus clases

hijashijas

Herencia de clases (3)Herencia de clases (3)

Redefinición de métodosRedefinición de métodos

- El método a redefinir se precede de El método a redefinir se precede de virtualvirtual

- El nuevo método se precede de El nuevo método se precede de overrideoverride

Herencia de interfacesHerencia de interfaces

Permite definir nuevas interfaces a partir de otras ya Permite definir nuevas interfaces a partir de otras ya definidasdefinidas

Si una interfaz A hereda de otra interfaz B, el compilador Si una interfaz A hereda de otra interfaz B, el compilador incluye en A el contenido de Bincluye en A el contenido de B

Una interfaz puede heredar de 1 ó más interfacesUna interfaz puede heredar de 1 ó más interfaces

<modificador> interface <nombreInterfazHija> : <nombreInterfazPadre><modificador> interface <nombreInterfazHija> : <nombreInterfazPadre>{{

<miembrosHija><miembrosHija>}}

Delegados y eventosDelegados y eventos

Un Un objeto delegadoobjeto delegado almacena referencias almacena referencias a uno o más métodosa uno o más métodos

- Puede realizar la ejecución en cadena de todos Puede realizar la ejecución en cadena de todos ellosellos

Se usan mucho en las interfaces gráficasSe usan mucho en las interfaces gráficas

También se usan para ejecutar funciones También se usan para ejecutar funciones de forma asíncronade forma asíncrona

ExcepcionesExcepciones

Una Una excepciónexcepción es un objeto que es un objeto que representa un errorrepresenta un error

Surgen al haber un error, pero podemos Surgen al haber un error, pero podemos provocarlas nosotros mismosprovocarlas nosotros mismos

Podemos crear nuestras propias Podemos crear nuestras propias excepcionesexcepciones

Enlaces de interésEnlaces de interés

Club .NET Sevilla:Club .NET Sevilla:

http://sevilla.dotnetclubs.comhttp://sevilla.dotnetclubs.com

Recursos del club:Recursos del club:

http://recursos.dotnetclubs.com/sevillahttp://recursos.dotnetclubs.com/sevilla

Programación con .NET:Programación con .NET:

http://www.codeproject.comhttp://www.codeproject.com

(GRACIAS)(GRACIAS)