Vous êtes sur la page 1sur 90

C# para programadores VB6.

ISC Moises Chi Gorocica


moiseschi@hotmail.com

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

Abstracción Relaciones

Herencia 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
Persona -dueño Vehiculo
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

Vehiculo Puerta
-color
+Mover()
Herencia
Clase Base
Es una relación entre clases
en la cual una clase
comparte la estructura y Transporte
-pasajeros
comportamiento definido en +Avanzar()
otra clase (Grady Booch) +Detenerse()

Cada clase que hereda de


otra posee:
Automóvil Avión
 Los atributos de la clase base
además de los propios
 Soporta todos o algunos de los
métodos de la clase base
Clases Derivadas o
Una subclase hereda de una subclases
clase base
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
Transporte
Avanzar
Avanzar

Frenar

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?

Otros Otros
servicios servicios
Servicios Formularios
Web
Biz Web
Tier Logic
Navegadores
estándares
Lógica aplicación

Clientes OS
inteligentes
Services
Servicios SO
Servicios
building blocks
Dispositivos
móviles

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
¿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?
VB C++ C# JScript …

Common Language Specification - CLS

Visual Studio.NET
ASP.NET: Servicios Web Windows
y Web Forms Forms

ADO.NET, XML, Enterprise Services

Base Class Library

Common Language Runtime


Funcionamiento
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
Compilación
Código Compilador Código (IL)
Fuente lenguaje Ensambl.
Metadatos

Código
CLR
Compilador
Nativo JIT En instalación o la
primera vez que se
Ejecución llama a un método

Proceso del código gestionado


C# y MSIL
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.
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 “ ; ”

//Una linea con mas de un renglon


string nombre = primerNombre +
apellido;
//El punto y coma indica FINAL de linea

VB: la línea finaliza con un salto de línea

'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="x">El primer operando de la suma</param>
/// <param name="y">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

system.console.writeline(“HOLA”); INCORRECTO

System.Console.WriteLine(“HOLA”); CORRECTO

VB no distingue entre mayúscuclas y minúsculas


Tipos de Datos
Categoría Clase Descripción C# Alias VB
Enteros Byte Un entero sin signo (8-bit) byte Byte
SByte Un entero con signo (8-bit) sbyte Sbyte
Int16 Un entero con signo (16-bit) short Short
Int32 Un entero con signo (32-bit) int Integer
Int64 Un entero con signo (64-bit) long Long
Punto Un número de punto flotante de simple precisión
Flotante Single (32-bit) float Single
Un número de punto flotante de doble precisión
Double (64-bit) double Double
Decimal Un número decimal de 96-bit decimal Decimal
Lógicos Boolean Un valor booleano (true o false) bool Boolean
Otros Char Un caracter Unicode (16-bit) char Char
Object La raíz de la jerarquía de objetos object Object
Una cadena de caracteres unicode inmutable y
String de tamaño fijo string String
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:

C# VB
public Public
private Private
internal Friend
protected Protected
protected internal Protected Friend
Declaración de Variables
C#: el tipo de dato precede al identificador (nombre)
int x;
decimal y;
rectangle z;
Cliente cli;

VB: comienza con “Dim” o algún modificador de


acceso (Public, Private, etc.) + identificador de la
variable + “As” Tipo de Dato
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
int tempBalance; //variable local
//ERROR: tempBalance NO ha sido inicializada
System.Console.WriteLine(tempBalance);

VB: inicializa automáticamente las variables en CERO


o en Nothing
Conversiones de Tipos
C# no permite conversiones implícitas de tipos
Si falla el cast se devuelve null o 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”

VB usa las directivas del compilador Option Strict


Si falla el cast siempre se genera una InvalidCastException
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
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”};

VB permite definir arrays de varias formas con ()


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
Descripción C# VB
Asignación = =
Adición + +
Sustracción - -
Multiplicación * *
División / /
Negación ! not
Módulo (Parte entera de la división) % mod
Mayor > >
Menor < <
Mayor o Igual >= >=
Menor o Igual <= <=
Operadores Lógicos
C# VB Operador
&& And Operador logico Y
ll Or Operador logico O
! Not Negacion logica
== = Igual
!= <> Distinto

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
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
//Partes: declaración, prueba, acción
for (int i=1; i < 10; i++)
{
}

VB usa las palabras claves For, To, Next y Step


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
For/Each permite recorrer arreglos y colecciones
C#: usa la palabra foreach
string[] nombres = new string[5];
foreach(string auxNombre in nombres)
{
//Codigo
}

VB usa las palabra For Each


Dim nombres(5) As String
Dim auxNombre As String
For Each auxNombre In nombres
'Codigo
Next
Sentencia while
C#:

bool condicion = true;


while (condicion == true){
//En algún momento poner condicion = false
}

VB:

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
//Definicion de la clase CuentaBancaria
class CuentaBancaria
{
//Definicion de miembros
}

VB usa las palabras Class / End Class


‘Definicion de la clase CuentaBancaria
Class CuentaBancaria
‘Definicion de miembros
End Class
Métodos
Métodos: acciones que un objeto puede llevar a cabo.
En C# todo método es una función
public void HacerDeposito(int importe) //No devuelve valor
{
}

public int ObtenerInventario(int codArticulo) //Devuelve un entero


{
}

VB usa procedimientos Sub y funciones Function


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
Sobrecarga de Métodos
Sobrecarga: varios métodos con el mismo nombre pero
diferente “firma”.
C#
public void HacerDeposito(int importe)
{
}

public void HacerDeposito(int importe, bool acreditar)


{
}

VB

Public Sub HacerDeposito(ByVal imp As Integer, Optional ByVal acreditar


As Boolean = false)
End Sub
Propiedades
Propiedad: característica o atributo de un objeto
C# VB
class CtaCte
{
Class CtaCte
int balance;
Dim _balance As Integer
public int Balance
Property Balance() As Integer
{
Get
get
Return _balance
{
End Get
return balance;
Set (ByVal value As Integer)
}
_balance = value
set
End Set
{
End Property
balance = value;
End Class
}
}
Dim cc As New CtaCte()
}
cc.Balance = 100 ‘Asignación
Mostrar(cc.Balance) ‘Obtención
CtaCte cc = new CtaCte();
cc.Balance = 100; //Asignación
Mostrar(cc.Balance); //Obtención
Herencia
En C# la herencia se define:
class Cuenta //Clase Base
{
}
class CtaCte : Cuenta //Clase Derivada
{
}
En .NET solo
VB usa la palabra clave Inherits se permite
Herencia
Class Cuenta ‘Clase Base Simple
End Class

Class CtaCte ‘Clase Derivada


Inherits Cuenta
End Class
Admin. De Excepciones
Excepción: condición anómala de funcionamiento de una
aplicación

C#: usa las palabras VB usa las palabras


try/catch/finally Try/Catch/Finally

try
{
int resultado = x/y;
Try
}
Dim resultado As Integer
catch(DivideByZeroException e)
resultado = x/y
{
Catch e As DivideByZeroException
//Error division por cero
‘Error division por cero
}
Catch
catch
‘Otro error
{
Finally
//Otro error
‘Siempre pasa por aca
}
End Try
finally
{
//Siempre pasa por aca
}
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();
Namespaces de la plataforma
.NET
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
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:
0123456789
0123456789
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
C# para programadores VB6.0

ISC Moises Chi Gorocica


moiseschi@hotmail.com

Aluxes .NET

Vous aimerez peut-être aussi