Successfully reported this slideshow.

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

1,092 views

Published on

Introduccion a C#

Published in: Education, Technology
  • Be the first to comment

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

  1. 1. Introducción a C# José Antonio Jiménez Carmona Club .NET – Universidad de Sevilla
  2. 2. ÍNDICE <ul><li>¿Qué es .NET? </li></ul><ul><li>¿Qué es C#? </li></ul><ul><li>Características de C# </li></ul><ul><li>Estructura de un programa en C# </li></ul><ul><li>Variables </li></ul><ul><li>Arrays </li></ul><ul><li>Constantes </li></ul><ul><li>Operadores </li></ul><ul><li>Sentencias </li></ul><ul><li>Herencia de clases </li></ul><ul><li>Herencia de interfaces </li></ul><ul><li>Delegados y eventos </li></ul><ul><li>Excepciones </li></ul>
  3. 3. ¿Qué es .NET? <ul><li>Tecnología software de Microsoft </li></ul><ul><li>Se trata básicamente del Framework .NET (máquina virtual + librerías) </li></ul><ul><li>Aplicaciones productivas y multiplataforma </li></ul>
  4. 4. ¿Qué es C#? <ul><li>Lenguaje de propósito general, creado por Microsoft </li></ul><ul><li>Lenguaje evolucionado de C++ y Java </li></ul><ul><li>Ideal para .NET </li></ul>
  5. 5. Características de C# <ul><li>Lenguaje de alto nivel y sencillo </li></ul><ul><li>Orientado a objetos </li></ul><ul><li>Lenguaje moderno </li></ul><ul><li>Sintaxis casi igual a la de Java </li></ul><ul><ul><li>“ Si sabes Java, sabes C#” </li></ul></ul>
  6. 6. Estructura de un programa en C# using System; using System.Collections.Generic; using System.Text; namespace Mi P rograma { public class Program { public static void Main(string[] args) { } } } Función principal Librerías usadas
  7. 7. Variables – Clasificación <ul><li>Tratadas por valor </li></ul><ul><li>Tratadas por referencia </li></ul><ul><li>Tipos primitivos </li></ul><ul><li>Tipos enumerados </li></ul><ul><li>Estructuras </li></ul><ul><li>Clases </li></ul><ul><li>Interfaces </li></ul><ul><li>Arrays </li></ul><ul><li>Delegados </li></ul>
  8. 8. Variables – Tipos primitivos <ul><li>• E ntero: int numero; </li></ul><ul><li>numero = 4; </li></ul><ul><li>• Carácter: char c; </li></ul><ul><li>c = ‘a’; </li></ul><ul><li>• Cadena de caracteres: string ciudad; </li></ul><ul><li>ciudad = “Sevilla”; </li></ul><ul><li>• Lógico: bool exito; </li></ul><ul><li>exito = true; </li></ul>
  9. 9. Variables – Tipos enumerados (1) <ul><li>Tipo de variable cuyos valores posibles los elegimos nosotros </li></ul><ul><li>Estructura: </li></ul><ul><li>enum <nombre> { valor1, valor2,…, valorN } </li></ul>
  10. 10. Variables – Tipos enumerados (2) <ul><li>Ejemplo: </li></ul><ul><li>enum Color { azul, verde, rojo, amarillo } </li></ul><ul><li>… </li></ul><ul><li>Color c; </li></ul><ul><li>c = Color .rojo; </li></ul>
  11. 11. Variables – Clases (1) <ul><li>Un objeto es un conjunto de datos y de métodos que permiten manipular dichos datos </li></ul><ul><li>Una clase es la definición de las características concretas de un determinado tipo de objetos </li></ul>
  12. 12. Variables – Clases (2) <ul><li>Una clase se compone de: </li></ul><ul><ul><li>Atributos  Los datos del objeto </li></ul></ul><ul><ul><li>Métodos  La funcionalidad del objeto </li></ul></ul><ul><ul><li>Constructores  Para valores iniciales </li></ul></ul>
  13. 13. Variables - Estructuras <ul><li>Una estructura es lo mismo que una clase, pero con tres diferencias principalmente: </li></ul><ul><ul><li>Se trata como variable por valor </li></ul></ul><ul><ul><li>Es más rápida y ocupa menos memoria </li></ul></ul><ul><ul><li>No tiene herencia </li></ul></ul>
  14. 14. Variables – Interfaces <ul><li>Una interfaz especifica un “contrato” que una clase debe cumplir </li></ul><ul><ul><li>Contiene las cabeceras de los métodos y propiedades que debe tener dicha clase </li></ul></ul><ul><li>Una clase puede implementar 1 ó más interfaces </li></ul>
  15. 15. Variables - Propiedades <ul><li>Una propiedad es una mezcla entre el concepto de atributo y el concepto de método. </li></ul><ul><li>Externamente es accedida como si de un atributo normal se tratase, pero internamente es posible asociar código a ejecutar en cada asignación o lectura de su valor. </li></ul>
  16. 16. Arrays <ul><li>Un array es un tipo especial de variable que es capaz de almacenar de manera ordenada 1 ó más datos de un determinado tipo </li></ul><ul><li>El valor de un array es una referencia </li></ul><ul><li>Tienen algunos métodos y propiedades útiles </li></ul>
  17. 17. Constantes <ul><li>Una constante es una variable cuyo valor no puede cambiar durante la ejecución del programa </li></ul><ul><li>Hay que darles un valor inicial al declararlas: </li></ul><ul><ul><li>const <tipoConstante> <nombreConstante> = <valor>; </li></ul></ul>
  18. 18. Operadores (1) <ul><li>De asignación </li></ul><ul><li>Aritméticos </li></ul><ul><li>Asignación ( = ) </li></ul><ul><li>Suma ( + ) </li></ul><ul><li>Resta ( - ) </li></ul><ul><li>Producto ( * ) </li></ul><ul><li>División ( / ) </li></ul><ul><li>Módulo ( % ) </li></ul>
  19. 19. Operadores (2) <ul><li>Relacionales </li></ul><ul><li>Igualdad ( == ) </li></ul><ul><li>Desigualdad ( != ) </li></ul><ul><li>Mayor que ( > ) </li></ul><ul><li>Menor que ( < ) </li></ul><ul><li>Mayor o igual que ( >= ) </li></ul><ul><li>Menor o igual que ( <= ) </li></ul>
  20. 20. Operadores (3) <ul><li>Lógicos </li></ul><ul><li>AND con Evaluación Perezosa ( && ) </li></ul><ul><li>AND sin Evaluación Perezosa ( & ) </li></ul><ul><li>OR con Evaluación Perezosa ( || ) </li></ul><ul><li>OR sin Evaluación Perezosa ( | ) </li></ul><ul><li>NOT ( ! ) </li></ul><ul><li>XOR ( ^ ) </li></ul>
  21. 21. Sentencias (1) <ul><li>Instrucción IF: </li></ul><ul><li>Permite ejecutar ciertas instrucciones sólo si se cumple una determinada condición. </li></ul><ul><li>if (<condición>) </li></ul><ul><li>{ </li></ul><ul><li><instrucciones> </li></ul><ul><li>} </li></ul><ul><li>else </li></ul><ul><li>{ </li></ul><ul><li><instrucciones> </li></ul><ul><li>} </li></ul>
  22. 22. Sentencias (2) <ul><li>Instrucción SWITCH </li></ul><ul><li>Permite ejecutar un bloque de instrucciones según el valor de una cierta expresión. </li></ul><ul><li>switch (<variable>) </li></ul><ul><li>{ </li></ul><ul><li>case <valorN>: </li></ul><ul><li><instrucciones> </li></ul><ul><li>} </li></ul>
  23. 23. Sentencias (3) <ul><li>Instrucción FOR: </li></ul><ul><li>Sirve para repetir una serie de instrucciones un determinado número de veces. </li></ul><ul><li>for (<inicialización> ; <condición> ; <modificación>) </li></ul><ul><li>{ </li></ul><ul><li><instrucciones> </li></ul><ul><li>} </li></ul>
  24. 24. Sentencias (4) <ul><li>Instrucción WHILE: </li></ul><ul><li>Sirve repetir una serie de instrucciones mientras se cumpla una condición. </li></ul><ul><li>while (<condición>) </li></ul><ul><li>{ </li></ul><ul><li><instrucciones> </li></ul><ul><li>} </li></ul>
  25. 25. Sentencias (5) <ul><li>Instrucción DO WHILE: </li></ul><ul><li>Sirve repetir una serie de instrucciones mientras se cumpla una condición y al menos se ejecutan 1 vez. </li></ul><ul><li>do </li></ul><ul><li>{ </li></ul><ul><li><instrucciones> </li></ul><ul><li>} </li></ul><ul><li>while (<condición>) </li></ul>
  26. 26. Sentencias (6) <ul><li>Instrucción FOREACH </li></ul><ul><li>Sirve para recorrer arrays, como un iterador. </li></ul><ul><li>foreach ( <tipoElemento> <elemento> in <array> ) </li></ul><ul><li>{ </li></ul><ul><li><instrucciones> </li></ul><ul><li>} </li></ul>
  27. 27. Herencia de clases (1) <ul><li>Permite definir nuevas clases a partir de otras ya definidas </li></ul><ul><li>Si una clase A hereda de otra clase B, el compilador incluye en A el contenido de B </li></ul><ul><li>Una clase no puede heredar de más de 1 clase </li></ul><ul><li><modificador> class <nombreClaseHija> : <nombreClasePadre> </li></ul><ul><li>{ </li></ul><ul><ul><li><miembrosHija> </li></ul></ul><ul><li>} </li></ul>
  28. 28. Herencia de clases (2) <ul><li>Modificadores </li></ul><ul><ul><li>Controlan la visibilidad de los atributos y métodos de una clase </li></ul></ul><ul><ul><li>Modificadores más importantes: </li></ul></ul><ul><ul><ul><li>public : Visible fuera de la clase </li></ul></ul></ul><ul><ul><ul><li>private : Visible sólo dentro de la clase </li></ul></ul></ul><ul><ul><ul><li>protected : Visible dentro de la clase y de sus clases </li></ul></ul></ul><ul><ul><ul><ul><ul><li>hijas </li></ul></ul></ul></ul></ul>
  29. 29. Herencia de clases (3) <ul><li>Redefinición de métodos </li></ul><ul><ul><li>El método a redefinir se precede de virtual </li></ul></ul><ul><ul><li>El nuevo método se precede de override </li></ul></ul>
  30. 30. Herencia de interfaces <ul><li>Permite definir nuevas interfaces a partir de otras ya definidas </li></ul><ul><li>Si una interfaz A hereda de otra interfaz B, el compilador incluye en A el contenido de B </li></ul><ul><li>Una interfaz puede heredar de 1 ó más interfaces </li></ul><ul><li><modificador> interface <nombreInterfazHija> : <nombreInterfazPadre> </li></ul><ul><li>{ </li></ul><ul><ul><li><miembrosHija> </li></ul></ul><ul><li>} </li></ul>
  31. 31. Delegados y eventos <ul><li>Un objeto delegado almacena referencias a uno o más métodos </li></ul><ul><ul><li>Puede realizar la ejecución en cadena de todos ellos </li></ul></ul><ul><li>Se usan mucho en las interfaces gráficas </li></ul><ul><li>También se usan para ejecutar funciones de forma asíncrona </li></ul>
  32. 32. Excepciones <ul><li>Una excepción es un objeto que representa un error </li></ul><ul><li>Surgen al haber un error, pero podemos provocarlas nosotros mismos </li></ul><ul><li>Podemos crear nuestras propias excepciones </li></ul>
  33. 33. Enlaces de interés <ul><li>Club .NET Sevilla: </li></ul><ul><ul><li>http://sevilla.dotnetclubs.com </li></ul></ul><ul><li>Recursos del club: </li></ul><ul><ul><li>http://recursos.dotnetclubs.com/sevilla </li></ul></ul><ul><li>Programación con .NET: </li></ul><ul><ul><li>http://www.codeproject.com </li></ul></ul>
  34. 34. THE END (GRACIAS)

×