C# para desarrolladores VB6
Upcoming SlideShare
Loading in...5
×
 

C# para desarrolladores VB6

on

  • 17,922 views

Intro C# for VB6 Developers

Intro C# for VB6 Developers

Statistics

Views

Total Views
17,922
Views on SlideShare
17,322
Embed Views
600

Actions

Likes
0
Downloads
291
Comments
1

14 Embeds 600

http://avrperu.blogspot.com 339
http://www.slideshare.net 130
http://tonigeek.blogspot.com 42
http://avrperu.blogspot.mx 34
http://avrperu.blogspot.com.es 23
http://tonigeek.blogspot.mx 14
http://tonigeek.blogspot.com.es 4
http://avrperu.blogspot.com.ar 4
http://feeds.feedburner.com 3
http://tonigeek.blogspot.com.ar 2
http://avrperu.blogspot.pt 2
http://webcache.googleusercontent.com 1
http://avrperu.blogspot.ro 1
http://avrperu.blogspot.com.br 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

C# para desarrolladores VB6 C# para desarrolladores VB6 Presentation Transcript

  • ISC Moises Chi Gorocica [email_address] C# para programadores VB6.0 Aluxes .NET
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
    • Introducción a .NET
    • El lenguaje de programacion C#
    • Programacion en C#
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
    • Introducción a .NET
    • El lenguaje de programacion C#
    • Programacion en C#
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
      • Paradigmas de Programación
      • Clases y Objetos
      • Modificadores de Acceso
      • Principios de la Orientación a Objetos
      • Conceptos del Diseño Orientado a Objetos
    • Introducción a .NET
    • El lenguaje de programacion C#
    • Programacion en C#
  • Paradigmas de Programación
    • Hay para todos los gustos
      • Estructurados (C, Pascal, Basic, etc.)
      • Funcionales (CAML)
      • Declarativos (Prolog)
      • Orientados a Objetos (C#, VB.NET, Smalltalk, Java)
      • Orientados a Aspectos
      • Híbridos (Lisp, Visual Basic)
      • Incomprensibles....
    • Cada enfoque tiene sus ventajas y desventajas
    • Cada uno es más apropiado para ciertas cosas
  • El mundo color de Objetos
    • Todo el mundo está compuesto de entidades que se relacionan e interactúan entre si
    • ¿Qué es un Objeto?
      • Todo es un Objeto ¡¿~?!
    • ¿Es lo mismo de siempre con otro nombre?
      • Pensar en Objetos ….
    • No es el último grito de la moda (1980s)
  • El mundo color de Objetos
    • ¿Por qué Orientación a Objetos (OO)?
      • Se parece más al mundo real
      • Permite representar modelos complejos
      • Muy apropiada para aplicaciones de negocios
      • Las empresas ahora sí aceptan la OO
      • Las nuevas plataformas de desarrollo la han adoptado (Java / .NET)
  • ¿Qué es un Objeto?
    • Informalmente, un objeto representa una entidad del mundo real
    • Entidades Físicas
        • (Ej.: Vehículo, Casa, Producto )
    • Entidades Conceptuales
      • (Ej.: Proceso Químico, Transacción Bancaria )
    • Entidades de Software
      • (Ej.: Lista Enlazada, Interfaz Gráfica )
  • ¿Qué es un Objeto?
    • Definición Formal (Rumbaugh) :
      • “ Un objeto es un concepto, abstracción o cosa con un significado y límites claros en el problema en cuestión”
    • Un objeto posee (Booch):
      • Estado
      • Comportamiento
      • Identidad
  • Un objeto posee Estado
    • Lo que el objeto sabe
    • El estado de un objeto es una de las posibles condiciones en que el objeto puede existir
    • El estado normalmente cambia en el transcurso del tiempo
    • El estado de un objeto es implementado por un conjunto de propiedades (atributos), además de las conexiones que puede tener con otros objetos
  • Un objeto posee Comportamiento
    • Lo que el objeto puede hacer
    • El comportamiento de un objeto determina cómo éste actúa y reacciona frente a las peticiones de otros objetos
    • Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar)
    • Se implementa mediante métodos
  • Un objeto posee Identidad
    • Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro objeto
  • ¿Qué es una Clase?
    • Una clase es una descripción de un grupo de objetos con:
      • Propiedades en común (atributos)
      • Comportamiento similar (operaciones)
      • La misma forma de relacionarse con otros objetos (relaciones)
      • Una semántica en común (significan lo mismo)
    • Una clase es una abstracción que:
      • Enfatiza las características relevantes
      • Suprime otras características (simplificación)
    • Un objeto es una instancia de una clase
  • Objetos y Clases
    • Una clase es una definición abstracta de un objeto
      • Define la estructura y el comportamiento compartidos por los objetos
      • Sirve como modelo para la creación de objetos
    • Los objetos pueden ser agrupados en clases
  • Ejemplo de una Clase
    • Clase: Curso
    • Estado (Atributos)
      • Nombre
      • Ubicación
      • Días Ofrecidos
      • Horario de Inicio
      • Horario de Término
    • Comportamiento (Métodos)
      • Agregar un Alumno
      • Borrar un Alumno
      • Entregar un Listado del Curso
      • Determinar si está Completo
  • Modificadores de Acceso
    • Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o métodos) de una clase
      • Publico: Cualquier clase puede “ver” los miembros públicos de otra clase
      • Privado: Sólo la clase puede ver sus propios miembros privados
    • Existen otros dos modificadores para propósitos específicos (Paquete, Protegido)
  • Pilares de la Orientación a Objetos Relaciones Herencia Abstracción Encapsulamiento
  • Abstracción
    • Ignorancia Selectiva
      • La abstracción nos ayuda a trabajar con cosas complejas
      • Se enfoca en lo importante
      • Ignora lo que no es importante (simplifica)
    • Una clase es una abstracción en la que:
        • Se enfatizan las características relevantes
        • Se suprimen otras características
    • Una clase debe capturar una y solo una abstracción clave
  • Encapsulamiento
    • Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos
      • Deben ser declarados como privados
    • Permite abstraer al resto del mundo de la complejidad de la implementación interna
    • Permite exponer el estado del objeto sólo a través del comportamiento que le hayamos definido mediante miembros públicos
    • ¿Por qué es útil?
      • Punto de Control/Validación
      • Mejor respuesta ante los Cambios
  • Relaciones
    • Todo sistema abarca muchas clases y objetos
    • Los objetos contribuyen en el comportamiento de un sistema colaborando entre si
      • La colaboración se logra a través de las relaciones
    • Existen dos tipos principales de relaciones
      • Asociación
      • Agregación
  • Relaciones de Asociación
    • Una asociación es una conexión entre dos clases que representa una comunicación
      • Una asociación puede tener nombre
      • La comunicación puede ser tanto uni como bi-direccional (por defecto)
      • La multiplicidad es el número de instancias que participan en una asociación
    • Ejemplo:
      • Una Persona es Dueña de un Vehículo
      • Un Vehículo Pertenece a una Persona
  • Relaciones de Agregación
    • La agregación es una forma especial de asociación donde un todo se relaciona con sus partes
      • También se conoce como “una parte de” o una relación de contención
    • Ejemplo:
      • Una Puerta es una parte de un Vehículo
      • El Vehículo es azul, la Puerta es Azul
      • Mover el Vehículo implica mover la Puerta
  • Herencia
    • Es una relación entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch)
    • Cada clase que hereda de otra posee:
      • Los atributos de la clase base además de los propios
      • Soporta todos o algunos de los métodos de la clase base
    • Una subclase hereda de una clase base
    Clase Base Clases Derivadas o subclases
  • Herencia
    • Herencia “Es-Un”: herencia real, donde la subclase es un tipo específico de la superclase
      • Un Cuadrado es un Rectángulo
      • Un perro es un mamífero
      • Un automóvil es un vehículo a motor
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
    • Introducción a .NET
    • El lenguaje de programacion C#
    • Programacion en C#
  • Polimorfismo - Ejemplo
    • La definición del método reside en la clase base
    • La implementación del método reside en la clase derivada
    • La invocación es resuelta al momento de ejecución
    Transporte Avanzar Frenar Transporte Avanzar Frenar Transporte Avanzar Frenar Transporte Avanzar Frenar
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
    • Introducción a .NET
      • ¿Qué es el .NET?
      • ¿Qué es el .NET Framework?
      • Funcionamiento
    • El lenguaje de programacion C#
    • Programacion en C#
  • ¿Qué es el .NET? Una arquitectura tecnológica para la creación y distribución de software como servicio. Servicio en cualquier plataforma, cliente en cualquier dispositivo, programación en cualquier lenguaje, integración basada en estándares Otros servicios OS Services Biz Tier Logic Servicios SO XML XML XML HTML XML XML Navegadores estándares Dispositivos móviles Clientes inteligentes Lógica aplicación Servicios Web Otros servicios Servicios building blocks Formularios Web
  • ¿Qué es el .NET?
    • Soporte para múltiples lenguajes
      • Actualmente más de 26 lenguajes
        • C++ .NET, VB.NET, Python, Java, Fortran, Delphi, Ada, etc.
      • Introduce un nuevo lenguaje – C#
        • Lenguaje intrínseco, herencia, polimorfismo, encapsulación (orientación a objetos)
    • Servicios de la plataforma expuestos de forma idéntica a todos los lenguajes
        • Tanto Biblioteca de Componentes como Servicios básicos
  • ¿Por qué y para qué .NET?
    • No exclusivamente para PC’s con Windows
      • .NET Compact Framework para dispositivos móviles
        • PDA’s, SmartPhones, etc.
      • Mono
        • .NET para Linux
    • No solo para desarrollo de aplicaciones de escritorio
      • Aplicaciones y Servicios Web
      • Aplicaciones de consola
      • Bibliotecas de clases
      • Aplicaciones para Dispositivos Móviles
    • Orientado a Componentes
      • Clases
      • Eventos y delegados
      • Propiedades
      • Adiós a los manejadores, punteros, gestión de bloques de memoria, etc.
  • ¿Qué es el .NET Framework? Base Class Library Common Language Specification - CLS Common Language Runtime ADO.NET, XML, Enterprise Services VB C++ C# Visual Studio.NET ASP.NET: Servicios Web y Web Forms JScript … Windows Forms
    • Estructura de las aplicaciones
      • Archivos EXE y DLL’s
      • Necesidad de tener instalado el .NET FrameWork
      • Contienen código independiente de la máquina
        • MSIL (Microsoft Intermediate Languaje)
          • Imposible ejecutarlo por si sólo
          • Necesidad de compilarlo previamente para el Procesador y Sistema Operativo en el que va a ejecutarse.
        • JIT (Just In-Time)
          • Compilador que realiza la compilación al vuelo del MSIL
    Funcionamiento
  • Proceso del código gestionado En instalación o la primera vez que se llama a un método Funcionamiento CLR Código Fuente Compilación Compiladorlenguaje Ensambl. Ejecución Compilador JIT Código Nativo Código (IL) Metadatos
  • C# es un lenguaje que cumple con la especificación CLS. El código que crearemos con él será traducido a instrucciones MSIL para entonces ser traducido, justo antes de su ejecución, a instrucciones nativas que correspondan a la plataforma concreta sobre la cual estemos trabajando. Cabe destacar que el compilador JIT ( Just In Time ) traduce el código MSIL a código nativo no de manera monolítica, sino por métodos, módulos y componentes. Por lo tanto, a grandes rasgos: código que no sea ejecutado no será compilado. El código MSIL generado a partir de la compilación de código C# es idéntico al código MSIL generado a partir de cualquier otro lenguaje CLS. Esto podría abrir el interrogante de ¿por qué programar en C# en lugar de hacerlo en VB.NET o en Managed C++ o, incluso, en Delphi .NET? Esta pregunta podría responderse con otra: ¿por qué programar en C++ en lugar de hacerlo en C o Pascal, o en cualquier otro lenguaje compilado, si todos generan el mismo código Intel x86? Cada lenguaje posee sus características que lo tornan ideal para ciertos usos; además, presenta diversos grados de expresividad que pueden permitir implementar el mismo algoritmo de maneras diversas, por lo que un modo puede resultar más eficiente que otro. C# y MSIL
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
    • Introducción a .NET
    • El lenguaje de programacion C#
    • Programacion en C#
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
    • Introducción a .NET
    • El lenguaje de programacion C#
      • C#.NET
      • C#.NET y VB
      • Sintaxis (Diferencias)
    • Programación en C#
  • C#.NET
    • C# es un lenguaje de programación moderno, completamente orientado a objetos y se podría decir que es tanto una evolución de los lenguajes C++ y Java, ya que incorpora las mejoras características de cada uno de ellos.
    • C# es un lenguaje muy estricto en su sintaxis ya que obliga a que se declaren todas las variables, las conversiones de datos deber ser explícitas, es sensible a mayúsculas y otras características que lo convierte en un lenguaje muy formal. Aunque esta formalidad puede ser una dificultad al comienzo a la larga ayuda al desarrollador a su formación ya que le proporciona mayor disciplina.
    • Aunque es posible escribir código para la plataforma .NET en muchos otros lenguajes, C# es el único que ha sido diseñado específicamente para ser utilizado en ella, por lo que programarla usando C# es mucho más sencillo e intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos heredados innecesarios en .NET. Por esta razón, se suele decir que C# es el lenguaje nativo de .NET
  • C#.NET
    • C# irrumpe en el mercado como un lenguaje muy bien diseñado y con muchas virtudes en una industria plagada de soluciones y herramientas de programación para todos los gustos…
    • ¿Cuáles son, entonces, los motivos por los cuales deberíamos optar por C#?
    • C# es un lenguaje moderno y orientado a objetos, con una sintaxis muy similar a la de C++ y Java . Combina la alta productividad de Visual Basic con el poder y la flexibilidad de C++.
    • La misma aplicación que se ejecuta bajo Windows podría funcionar en un dispositivo móvil de tipo PDA . Con C#/.NET no nos atamos a ninguna plataforma en particular.
    • Se puede crear una gran variedad de aplicaciones en C#: aplicaciones de consola, aplicaciones para Windows con ventanas y controles, aplicaciones para la Web, etc.
  • C#.NET
    • C# gestiona automáticamente la memoria, y de este modo evita los problemas de programación tan típicos en lenguajes como C o C++. Mediante la plataforma .NET desde la cual se ejecuta es posible interactuar con otros componentes realizados en otros lenguajes .NET de manera muy sencilla.
    • También es posible interactuar con componentes no gestionados fuera de la plataforma .NET. Por ello, puede ser integrado con facilidad en sistemas ya creados.
    • Desde C# podremos acceder a una librería de clases muy completa y muy bien diseñada, que nos permitirá disminuir en gran medida los tiempos de desarrollo.
  • C#.NET y VB
    • Visual Basic es un lenguaje fácil de aprender pero con muchos defectos. Gran parte de esas deficiencias es fruto de su afanoso objetivo por ser sencillo para el programador novato. Es un lenguaje orientado a objetos light . Posee algunas de las características más populares de la POO implementadas, pero muchas de ellas (las que realmente extrañamos en proyectos complejos) permanecen ausentes, como la herencia, los métodos virtuales, la sobrecarga de operadores, etc.
    • Claro que VB también posee muchas virtudes. Realizar una aplicación Windows nunca había sido tan fácil, y si ciertas tareas se encuentran fuera del alcance del lenguaje, es posible realizar un componente en, por ejemplo, C++ y utilizarlo desde VB sin inconvenientes..
  • Terminación de línea
    • C#: la línea finaliza con un “ ; ”
    • VB: la línea finaliza con un salto de línea
    //Una linea con mas de un renglon string nombre = primerNombre + apellido; //El punto y coma indica FINAL de linea 'Una linea con mas de un renglon Dim nombre As String = primerNombre & _ apellido
  • Comentarios
    • C# soporta tres tipos de comentarios
    string nombre = “Juan”; // Comentario de una sola línea /* Comentario con mas de una línea*/ /// <summary> /// Documentación XML que puede ser consumida por otras /// herramientas para mostrar ayuda dinámica o generar /// documentación en varios formatos /// </summary> public class Matematica { /// <summary> /// Calcula la suma de dos números enteros /// </summary> /// <param name=&quot;x&quot;> El primer operando de la suma </param> /// <param name=&quot;y&quot;> El segundo operando de la suma </param> /// <returns> La suma entera de ambos operandos </returns> public int Sumar (int x, int y) { return x + y;} }
  • Comentarios
    • VB
    'Comentario simple Dim nombre As String = “Juan” ‘Otro comentario
  • Case Sensitivity
    • C# distingue entre mayúsuclas y minúsculas
    • VB no distingue entre mayúscuclas y minúsculas
    system.console.writeline(“HOLA”); INCORRECTO System.Console.WriteLine(“HOLA”); CORRECTO
  • Tipos de Datos String string Una cadena de caracteres unicode inmutable y de tamaño fijo String     Object object La raíz de la jerarquía de objetos Object   Char char Un caracter Unicode (16-bit) Char Otros Boolean bool Un valor booleano (true o false) Boolean Lógicos Decimal decimal Un número decimal de 96-bit Decimal     Double double Un número de punto flotante de doble precisión (64-bit) Double     Single float Un número de punto flotante de simple precisión (32-bit) Single Punto Flotante Long long Un entero con signo (64-bit) Int64     Integer int Un entero con signo (32-bit) Int32     Short short Un entero con signo (16-bit) Int16     Sbyte sbyte Un entero con signo (8-bit) SByte     Byte byte Un entero sin signo (8-bit) Byte Enteros VB C# Alias Descripción Clase Categoría
  • Alcance de miembros
    • Miembro : se refiere a los campos, propiedades, métodos, eventos, clases anidadas, etc.
    • C#: todo miembro es declarado como PRIVATE por default
    • Modificadores de acceso disponibles:
    Protected Friend protected internal Protected protected Friend internal Private private Public public VB C#
  • Declaración de Variables
    • C#: el tipo de dato precede al identificador (nombre)
    • VB: comienza con “Dim” o algún modificador de acceso (Public, Private, etc.) + identificador de la variable + “As” Tipo de Dato
    int x; decimal y; rectangle z; Cliente cli; Dim x As Integer ‘Dim es = a Private por defecto Dim y As Decimal Dim z As Rectangle Dim cli As Cliente
  • Inicialización de Variables
    • C#: toda variable debe ser inicializada EXPLICITAMENTE antes de ser usada
    • VB: inicializa automáticamente las variables en CERO o en Nothing
    int tempBalance; //variable local //ERROR: tempBalance NO ha sido inicializada System.Console.WriteLine(tempBalance);
  • Conversiones de Tipos
    • C# no permite conversiones implícitas de tipos
      • Si falla el cast se devuelve null o InvalidCastException
    • VB usa las directivas del compilador Option Strict
      • Si falla el cast siempre se genera una InvalidCastException
    Cuenta cta = new CtaCte(); CtaCte cc = cta; //Error: puede que cta no sea una CtaCte CtaCte cc = (CtaCte)cta; //Conversion explicita “CASTING” CtaCte cc = cta as CtaCte; //Usando el operador “as” if (cta is CtaCte) ... //Comp. con el operador “is” Dim cta As Cuenta = New CtaCte() Dim cc As CtaCte = cta ‘OK  Option Strict Off Dim cc As CtaCte = CType (cta, CtaCte) ‘Option Strict On If TypeOf cta Is CtaCte Then ‘Comp. con TypeOf Is
  • Arreglos
    • C# utiliza corchetes [ ] para definición de arrays
    • VB permite definir arrays de varias formas con ()
    string [] telefonos; //Definicion de un Arreglo de strings telefonos = new string [3]; //De 3 elementos telefonos[0] = “1245”; //Seteo del 1er elemento del arreglo //Definicion y asignacion de una vez telefonos = new string [] {“1”,“2”,“3”}; Dim telefonos As String () ó Dim telefonos() As String Dim telefonos(3) As String ‘Crea un array de 4 elementos telefonos(0) = “1245” ‘Seteo del 1er elemento del arreglo ‘ Definicion y asignacion de una vez Dim telefonos() As String = {“1”,“2”,“3”}
  • Operadores <= <= Menor o Igual >= >= Mayor o Igual < < Menor > > Mayor mod % Módulo (Parte entera de la división) not ! Negación / / División * * Multiplicación - - Sustracción + + Adición = = Asignación VB C# Descripción
  • Operadores Lógicos
    • En C# todas las evaluaciones se hacen por “cortocircuito”
    //Si Hacer1() es True, entonces //Si Hacer1() es False, entonces //NO se evalua Hacer2() //NO se evalua Hacer2() if (Hacer1() || Hacer2()) if (Hacer1() && Hacer2()) { { } }
    • En VB se debe utilizar los operadores AndAlso y OrElse
    ‘ Si Hacer1() es True, entonces ‘Si Hacer1() es False, entonces ‘ NO se evalua Hacer2() ‘NO se evalua Hacer2() If Hacer1() OrElse Hacer2() Then If Hacer1() AndAlso Hacer2() Then ... ... End If End If Distinto <> != Igual   = == Negacion logica Not ! Operador logico O Or ll Operador logico Y And && Operador VB C#
  • Sentencias condicionales
    • C#: sentencia if con varios formatos
    if (x > 10) if (x < 10) if (x < 10) if (x < 10) HacerAlgo(); { { { Hacer1(); Hacer1(); Hacer1(); Hacer2(); } } } else else if (x > 20) { { Hacer2(); Hacer2(); } } else { Hacer3(); }
    • VB.NET: la sentencia If requiere de la palabra Then
    If x > 10 Then Hacer() If x < 10 Then If x < 10 Then If x < 10 Then Hacer1() Hacer1() Hacer1() Hacer2() Else ElseIf x > 20 Then End If Hacer2() Hacer2() End If Else Hacer3() End If
  • Sentencias condicionales
    • C#: sentencia case
    int a = 0; switch (a) { case 1:{ //CODIGO 1 break ; } case 2: { //CODIGO 2 break ; } default :{ //CODIGO DEFAULT break ; } }
    • VB: sentencia case
    Dim a As Integer = 0 Select a Case 1 'Código 1 Case 2 'Código 2 Case Else 'Código Default End Select
  • Sentencia for
    • C#: la sentencia for consta de tres partes
    • VB usa las palabras claves For, To, Next y Step
    //Partes: declaración, prueba, acción for ( int i=1; i < 10; i++) { } Dim i As Integer For i = 1 To 100 For i = 1 To 100 Step 2 ‘ i se incrementa en 1 ‘i se incrementa en 2 Next Next
  • Sentencia for/each
    • C#: usa la palabra foreach
    • VB usa las palabra For Each
    string [] nombres = new string [5]; foreach (string auxNombre in nombres) { // Codigo } Dim nombres(5) As String Dim auxNombre As String For Each auxNombre In nombres ' Codigo Next
    • For/Each permite recorrer arreglos y colecciones
  • Sentencia while
    • C#:
    • VB:
    bool condicion = true ; while (condicion == true ){ //En algún momento poner condicion = false } Dim condicion As Boolean = True While condicion = True 'Poner condicion=false en algún momento End While
  • Clases
    • C#: las clases son declaradas mediante class
    • VB usa las palabras Class / End Class
    //Definicion de la clase CuentaBancaria class CuentaBancaria { //Definicion de miembros } ‘ Definicion de la clase CuentaBancaria Class CuentaBancaria ‘ Definicion de miembros End Class
  • Métodos
    • En C# todo método es una función
    • VB usa procedimientos Sub y funciones Function
    public void HacerDeposito( int importe) //No devuelve valor { } public int ObtenerInventario( int codArticulo) //Devuelve un entero { } Public Sub HacerDeposito( ByVal importe As Integer ) ‘ No devuelve valor End Sub Public Function Inventario( ByVal codArt As Integer) As Integer ‘ Devuelve un entero End Function
    • Métodos: acciones que un objeto puede llevar a cabo.
  • Sobrecarga de Métodos
    • C#
    • VB
    public void HacerDeposito( int importe) { } public void HacerDeposito( int importe, bool acreditar) { } Public Sub HacerDeposito( ByVal imp As Integer , Optional ByVal acreditar As Boolean = false) End Sub
    • Sobrecarga : varios métodos con el mismo nombre pero diferente “firma”.
  • Propiedades
    • C#
    • Propiedad: característica o atributo de un objeto
    • VB
    class CtaCte { int balance; public int Balance { get { return balance; } set { balance = value ; } } } CtaCte cc = new CtaCte(); cc.Balance = 100; //Asignación Mostrar(cc.Balance); //Obtención Class CtaCte Dim _balance As Integer Property Balance() As Integer Get Return _balance End Get Set (ByVal value As Integer) _balance = value End Set End Property End Class Dim cc As New CtaCte() cc.Balance = 100 ‘Asignación Mostrar(cc.Balance) ‘Obtención
  • Herencia
    • En C# la herencia se define:
    • VB usa la palabra clave Inherits
    class Cuenta //Clase Base { } class CtaCte : Cuenta //Clase Derivada { } Class Cuenta ‘Clase Base End Class Class CtaCte ‘Clase Derivada Inherits Cuenta End Class En .NET solo se permite Herencia Simple
  • Admin. De Excepciones
    • C#: usa las palabras try/catch/finally
    • VB usa las palabras Try/Catch/Finally
    try { int resultado = x/y; } catch (DivideByZeroException e) { //Error division por cero } catch { //Otro error } finally { //Siempre pasa por aca } Try Dim resultado As Integer resultado = x/y Catch e As DivideByZeroException ‘ Error division por cero Catch ‘ Otro error Finally ‘ Siempre pasa por aca End Try
    • Excepción: condición anómala de funcionamiento de una aplicación
  • Namespaces
    • C#
    namespace BancoARG { namespace Gestion { public class CtaCte { } public class CajaAhorro { } } } //Referencia “full” BancoARG.Gestion.CtaCte; BancoARG.Gestion.CajaAhorro; //Referencia “corta” using BancoARG.Gestion; CtaCte cc = new CtaCte(); CajaAhorro ca = new CajaAhorro();
    • System: Contiene tipos de datos muy usados, datos basicos, tablas, excepciones, ..... Es el raiz
    • System.Object: Soporta toda la jerarquia de las clases .NET
    • System.Collection: Colecciones de datos de uso comun, como pilas, colas, listas, ...
    • System.Data: Manipulacion de bases de datos. Forma la denominada arquitectura ADO.NET
    • System.IO: Manipulacion de Ficheros
    • System.Reflection: Acceso a Metadatos que acompañan a los modulos de codigo
    • System.Math: Funciones logaritmicas, trigonometricas, ....
    • System.XML: Acceso a datos XML
    • System.Web: Aplicaciones Web
    Namespaces de la plataforma .NET
  • Temas a Tratar
    • Introducción a la Orientación a Objetos
    • Introducción a .NET
    • El lenguaje de programación C#
    • Programación en C#
      • Visual Studio .NET
      • Creación de un proyecto C#
      • Ejemplos
  • Visual Studio .NET
    • Navegar fácilmente por las clases por medio del visor de clases.
    • Navegar por los archivos de nuestros proyectos por medio del explorador de soluciones.
    • Entender más rápidamente el código escrito gracias a que el editor colorea las palabras reservadas y los tipos de datos conocidos.
    • Organizar múltiples proyectos y editar fácilmente sus propiedades.
    • Depurar nuestros proyectos fácilmente y consultar valores de objetos de modo interactivo, así como realizar depuraciones remotas desde otras computadoras.
    • Acceder a facilidades de búsqueda y reemplazo por hoja de código fuente activo y en archivos.
    • Editar recursos (bitmaps, iconos, archivos binarios, etc.) por medio de herramientas integradas, y navegar por ellos por medio del visor de recursos.
    • Colapsar y expandir trozos de código para mejorar la legibilidad de nuestras fuentes.
    • Posibilidad de integrar herramientas al entorno por medio de un sistema de plug-ins.
  • Creación de un proyecto C#
    • Arrancar Visual Studio .NET
    • Del menú File escoger New Project
    • De los templates escoger Console Application
    • VS.NET crea una simplísima pero completa aplicación de consola llamada ConsoleApplication1
    • El código de esta aplicación se guarda en un archivo llamado Program1.cs
  • Creación de un proyecto C#
    • El código C# generado se ve así:
    • using – sirve para usar componentes pre-existentes
    • namespace – sirve para organizar los componentes de sistemas grandes
    • class – definición de una entidad que tiene estado y comportamiento
    • Main – método en el que arranca la ejecución de un programa C#
  • Ejecución de un proyecto C#
    • Antes de poder ejecutar un proyecto, debe ser construido
    • Usar la opción “Build Solution” del menú “Build” (o presionar Ctrl-Shift-B)
    • El programa se ejecuta usando la opción “Start without Debugging” del menú “Debug” (o presionar Ctrl-F5)
  • Escribiendo texto en la salida
    • Para presentar un texto en la pantalla:
    • Eliminando aquellos elementos que no necesitamos en este ejemplo:
    • Esto imprime el texto “¡Hola mundo!” en la consola
  • Creación e invocación de un método
    • Definición – el método como tal
    • Llamada – punto donde se pide la ejecución del método
    • Comentarios – explicación del código (ignorado por la máquina)
  • Se pueden tener muchos métodos
  • Funciones, operadores y variables
    • Una función es un método que “devuelve” información al invocador
    • Este programa devuelve: “3 + 5 = 8”
  • Funciones, operadores y variables
    • Otra manera de obtener el mismo resultado:
  • Funciones, operadores y variables
    • Este ejemplo despliega: La distancia entre (2,1) y (7,3) es 5,3851648071345
  • Funciones, operadores y variables
    • Ejemplo de ejecución: Ingrese el valor de a: 5 Ingrese el valor de b: 7 5 + 7 = 12
  • Condicionales
    • Ejemplo de ejecución: Ingrese un número: 97 97 es menor o igual a 100
  • Condicionales
    • Ejemplo de ejecución: Ingrese un número: 104 104 es mayor que 100
  • Lazos usando “for” y “while”
    • Ejemplo de ejecución: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
  • Arreglos
    • Ejemplo de ejecución: 0 2 4 6 8 10 12 14 16 18
  • Estructuras
    • Este ejemplo despliega: La distancia entre (2,1) y (7,3) es 5,3851648071345
  • Clases
    • Parecidas a las estructuras pero con responsabilides
    • El fundamento de la programación orientada a objetos
  • Clases
  • Clases
    • Campos privados
    • Propiedades públicas
  • Referencias e instancias
    • Salida: Mi nombre es Sole y tengo 16 años
  • Clases, constructores e instancias
  • Clases, arreglos e instancias
  • ISC Moises Chi Gorocica [email_address] C# para programadores VB6.0 Aluxes .NET
  •