Está en la página 1de 32

C#.

Net
Clase 2

Agenda
Referencia Histrica Introduccin
Caractersticas Ejemplo Compilacin en lnea Preprocesador Marcado de cdigo Compilacin condicional Aspectos Lxicos

Referencia Histrica
Lenguaje para .NET (nativo) Diseado por Scott Wiltamuth y Anders Hejlsberg Caractersticas de
C++ Java Visual Basic

Lenguaje maduro

Caractersticas
Sencillez
Cdigo autocontenido Tamao de los tipos bsicos No incluye
Herencia Mltiple Operadores diferentes . ::

Caractersticas
Moderno
Tipo decimal (128 bits) Instruccin foreach Tipos bsico
String bool

Caractersticas
Orientado a Objetos
Puro Encapsulamiento
public, private, protected, internal

Herencia
Resolver herencia mltiple con interfaces Palabra clave virtual para evitar errores

Polimorfismo

Caractersticas
Orientacin a Componentes
Propiedades Eventos Atributos

Caractersticas
Gestin de Memoria
Recoleccin de basura (Garbage Collector) No es necesario destruir objetos La destruccin
No deterministica
Por falta de memoria Finalizacin de la aplicacin Solicitud explicita

Deterministica
using

Caractersticas
Seguridad de Tipos
Conversiones entre tipos compatibles
Tipo y antecesores Explcitamente tenga operador de conversin Upcasting y Downcasting

No se puede utilizar variables no inicializadas Control de acceso a elementos de tabla Inclusin de delegates

Caractersticas
Instrucciones Seguras
Uso de operadores
Asignacion = Comparacin == Instruccin switch

Caractersticas
Tipos Unificados
Todos los tipos de datos derivan de system.object Que significa esto !!! Mecanismo
boxing Unboxing

Diseo de colecciones genricas

Caractersticas
Extensin de tipos bsicos
Utilizando estructuras Aplica las mismas optimizaciones de tipos bsicos Se almacenan en la pila Se asignan por valor (no por referencia)

Caractersticas
Extensin de Operadores
Facilita legibilidad del cdigo Queda igual que para los tipos bsicos Definir operadores
Simples: +, -, ++, - Complejos: ==, != Indizadores: []

Caractersticas
Eficiente
Incluye restricciones para seguridad No deja usar punteros Marcas de cdigo unsafe

Caractersticas
Compatible
Acceso a cdigo no orientado a objetos (dlls de API win32) Acceso a objetos COM Utilizacin de controles ActiveX

Introduccin
Ejemplo
class Hola {

MSOFFICE1

static void Main() { System.Console.WriteLine(HOLA !); } }

Diapositiva 16 MSOFFICE1
, 01/04/2008

Introduccin
Ejemplo Cmo compilamos? CSC compilador en lnea C:\WINDOWS\Microsoft.NET\Framework\
v2.0.50727

Introduccin
Ejemplo

Introduccin
Preprocesador Paso previo de la compilacin Traduccin texto texto Se usa para compilacin condicional No interpreta cdigo fuente

Introduccin
Preprocesador Directivas
#define #undef #if <condicion1> cdigo por condicin 1 #elif <condicion2> cdigo por condicin 2 #else cdigo por ninguna condicin #endif

Introduccin
Preprocesador
#define PRUEBA using System; class A { public static void Main() { #if PRUEBA Console.Write (Esto es una prueba); #if TRAZA Console.Write( con traza); #elif !TRAZA Console.Write( sin traza); #endif #endif } }

Introduccin
Preprocesador Cul es el resultado de la etapa? Qu resultado imprime? Cmo cambio el resultado?

Introduccin
Preprocesador Marcado de regiones
#region <nombre region> cdigo #endregion

Se puede anidar #if debe comenzar y terminar en la misma region

Introduccin
Aspectos Lxicos Comentarios
// /* */

Identificadores
Identifica cualquier elemento de nuestro cdigo Cualquier numero de caracteres alfanumricos

Introduccin
Aspectos Lxicos Palabra reservadas
abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, lock, is, long, namespace, new, null, object, operator, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, void, while.

Si se agregan mas palabras reservadas?

Introduccin
Aspectos Lxicos Literales
Representacin de un valor de un tipo bsico
Entero
9 0x16

Reales
12.21 1.221e1

Lgicos
True false

Carcter
a

String
esta es una clase?

Introduccin
Aspectos Lxicos Operadores
Smbolo que permite operar entre uno o mas datos
Aritmticos (+ - / %)
Checked(expr) Unchecked(expr)

Lgicas (! && ||) Relacionales (== ! >= <= )

Introduccin
Aspectos Lxicos Operadores
Smbolo que permite operar entre uno o mas datos
Asignacin
Simple (=) Compuesto (-= += ..) Pre y post a++ es equivalente a = a + 1 incremento ++ Decremento --

Introduccin
Aspectos Lxicos Operadores
Smbolo que permite operar entre uno o mas datos
Operador condicional
b = (a>0)? a : 0;

Operador de Delegados (+ += - -=)


Objeto con referencia a mtodos de otros objetos

Operacin de acceso a objetos


<objeto>.<miembro>

Operaciones con Punteros (& * ->)

Introduccin
Aspectos Lxicos Operadores
Smbolo que permite operar entre uno o mas datos
Informacin de tipo (typeof is sizeof) Creacin de objetos (new)
Auto au1 = new Auto(azul,mercedes)

Bibliografia
Programming Microsoft Windows with C#. Charles Petzold Microsoft Press, 2002. Como Programar en C#, H. Deitel, Perason. Prentice Hall, Segunda Edicin, 2007. Thinking in C#, L. OBrien, B. Eckel, Prentice Hall, 2000 Dissecting a C# Application Inside SharpDevelop, C. Holm, M. Krger, B. Spuida, APress, 2004