Está en la página 1de 22

2 INACAP VIRTUAL

TALLER DE PROGRAMACIN lll


TI1209

FUNDAMENTOS DEL FRAMEWORK 4 DE


.NET

UNIDAD 1

3
ndice de contenido
Introduccin 5
Tema 1: Framework 6
1.1. Descripcin de Framework de .NET 6
1.2. Ventajas del uso del Framework de .NET 7
1.3. Componentes del Framework  8
1.4. Interoperabilidad entre lenguajes (MSIL, JIT) 9
1.5. Instalacin de Visual Studio 2010 9
Tema 2: Fundamentos de C# 10
2.1. Tipos de datos 10
2.2. Funciones 11
2.3. Control de Flujo 11
2.4. Input, Output con C# 13
2.5. Manejo de excepciones 14
2.6. Generics 15
Tema 3: Programacin de OO con C# 16
3.1. Clases en C# 17
3.2. Constantes, campos, mtodos y propiedades. 17
3.3. Herencia 18
3.4. Espacios de nombre 18
3.5. Enumeraciones 18
3.6. Eventos y delegados 18
3.7. Expresiones Lambda 19
3.8. Ensamblados 19
RESUMEN 20
BIBLIOGRAFA 21

4 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

Introduccin
La plataforma .NET de Microsoft es un componente
de software que puede ser aadido al sistema ope-
rativo Windows, para el desarrollo y ejecucin de
aplicaciones Windows y distribuidas. Esta unidad
tiene el objetivo de ensear los fundamentos del
.Net FrameWork de C#, adems de indicar y definir
elementos bsicos del lenguaje C#.

En el presente documento se presenta y expone el


FrameWork de .Net describiendo su caractersticas,
ventajas y componentes, luego se describen los
elementos fundamentales del lenguaje C#, es un
lenguaje en esencia dctil y eficiente en la progra-
macin orientada al objeto. Por ltimo se expone
y describe lo elementos bsicos de la Programacin
orientada al objeto en C#.

5
Tema 1: Framework

La plataforma .NET Framework de Microsoft es un componente del software que puede ser aadido al
sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades
generales de la programacin de aplicaciones, administrando la ejecucin de los programas escritos
especficamente con la plataforma. Esta solucin es el producto principal en la oferta de Microsoft, y
pretende ser utilizada por la mayora de las aplicaciones.

1.1. Descripcin de Framework de .NET

.NET est compuesto por dos componentes principales: El segundo aspecto del Framework de .NET, es una com-
Common Language Runtime y la biblioteca de clases. El pleta coleccin orientada a objetos de tipos reutilizables
primero es el fundamento de .NET Framework, dentro de que se pueden emplear para desarrollar aplicaciones ca-
este, el motor en tiempo de ejecucin es equivalente a paces de abarcar desde las tradicionales herramientas
un agente que administra el cdigo (principio fundamen- de GUI o de lnea de comandos, hasta las aplicaciones
tal) en tiempo de ejecucin y es capaz de proporcionar basadas en innovaciones ms recientes de ASP.NET, tales
los servicios centrales de administracin, tales como: la como: formularios Web Forms y servicios Web XML.
de memoria, de subprocesos y comunicacin remota. Al
mismo tiempo aplica una seguridad estricta a los tipos y
formas de especificacin del cdigo que promueven su
seguridad y solidez. Como principio fundamental se en-
cuentra la administracin del cdigo (destinado al motor
en tiempo de ejecucin), este se denomina cdigo admi-
nistrado, o no administrado, a diferencia del resto.

6 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

1.2. Ventajas del uso del Framework de .NET

.NET Framework puede hospedarse en componentes no administrados que cargan Common Language Runti-
me en sus procesos e inician la ejecucin de cdigo administrado, con lo que se crea un entorno de software
en el que se pueden utilizar caractersticas administradas y no administradas.

Dentro de las ventajas ms destacables podemos encontrar:

Basada en
estndares y
prcticas web

Diseado
utilizando modelos Extensible
Ventajas
de aplicaciones
unificadas

Fcil de utilizar por


los desarrolladores

Fuente: elaboracin propia.

7
1.3. Componentes del
Framework

Dentro de los componentes del Framework encontra-


mos:

a) CLR o Common Language Runtime: administra la me-


moria, ejecucin de subprocesos y de cdigo, comproba-
cin de la seguridad de este mismo (esto significa que
un componente administrado puede ser capaz o no de
realizar operaciones de acceso a archivos, al registro y
otras, incluso si se est utilizando en la misma aplicacin
activa), compilacin y dems servicios del sistema.

El motor en tiempo de ejecucin impone la seguridad


de acceso del cdigo. Por ejemplo, los usuarios pueden
confiar en que un archivo ejecutable incrustado en una
pgina web permite reproducir una animacin en la
pantalla o entonar una cancin, pero no admite tener ac-
ceso a sus datos personales, sistema de archivos o red.

b) CTS: En. NET Framework de Microsoft, el siste-


ma de tipos comn (CTS) es un estndar que espe-
cifica cmo se representan las definiciones de tipo
y los valores especficos de estos en la memoria de
un computador. Su objetivo es permitir que los pro-
gramas escritos en diferentes lenguajes de progra-
macin puedan compartir fcilmente la informacin.

c) BCL: es la Librera de Clase Bsica y contiene cientos


de tipos de datos que permiten acceder a los servicios del
CLR y a las funcionalidades ms frecuentemente usadas
a la hora de escribir programas. Posee clases predisea-
das, permitiendo crear nuevas que por la herencia, extien-
dan su funcionalidad y se integren con el resto de clases.

BLC est escrita en lenguaje MSIL, por lo que se puede


usar desde cualquier lenguaje con compilador que ge-
nere MSIL.

8 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

1.4. Interoperabilidad entre 1.5. Instalacin de Visual


lenguajes (MSIL, JIT) Studio 2010

El CLR realiza un control automtico del cdigo para que Para comenzar a trabajar, es necesario contar con el pro-
este sea seguro, es decir, maneja los recursos del siste- grama Visual Studio 2010 instalado en el computador,
ma para que la aplicacin se ejecute correctamente. Este para esto es necesario tener credenciales de administra-
control se realiza a travs de dos herramientas: dor. Sin embargo, no es obligatorio tener estas autoriza-
ciones para poder utilizar Visual Studio despus de su
a)Interoperabilidad multilenguaje: se refiere a la capa- instalacin.
cidad para que el cdigo pueda ser escrito en cualquier
lenguaje compatible con .Net, ya que siempre se compi- Para instalar Visual Studio, ejecute primer Setup.exe,
la en cdigo intermedio (MSIL). que se encuentra en el directorio raz de los discos de
instalacin de Visual Studio o mediante descarga del si-
b) Compilacin Just-In-Time: compilador JIT incluido en tio web del producto.
el Framework que compila el cdigo intermedio (MSIL)
generando un cdigo mquina propio de la plataforma,
aumentando el rendimiento de la aplicacin al ser espe-
cfico para cada plataforma. Para obtener ms informacin, revisa los enlaces
web en plataforma:

Instalar distintas versiones de Visual Studio en pa-


ralelo.

Determinar qu versin de .NET Framework est ins-


talada.

9
Tema 2: Fundamentos de C#

C# (lase, en como C sharp) es un lenguaje de programacin que permite el desarrollo de aplicaciones para
Internet, mviles y aplicaciones de propsito general. En un comienzo se desarroll para programar en la pla-
taforma .NET de Microsoft, pero dadas sus caractersticas se ha nivelado su estructura por las principales enti-
dades de estndares internacionales, permitiendo que se desarrollen otras plataformas similares, y por lo tanto
C# puede ser utilizado como lenguaje de programacin en ellas. Entre estas plataformas se destaca el proyecto
MONO desarrollado bsicamente para programar aplicaciones para Linux, pero que tambin se ejecuta sobre
Windows y MAC.

2.1. Tipos de datos

Cuando nos referimos a C#, estamos hablando de un La ubicacin donde se asignar la memoria para las
tipo de lenguaje tipado, es decir, todas las variables y variables en tiempo de ejecucin.
constantes tienen un tipo, al igual que toda expresin da
como resultado un valor. Los tipos de operaciones permitidas.

La biblioteca de clases .NET Framework define un con-


junto de tipos numricos integrados y ms complejos
que representan una amplia variedad de construcciones
lgicas, como el sistema de archivos, conexiones de red,
colecciones y matrices de objetos y fechas. Un programa
tpico de C# usa los tipos de la biblioteca de clases, y
tambin los definidos por el usuario.

La informacin almacenada en un tipo puede incluir lo


siguiente:

El espacio de almacenamiento que requiere una va-


riable del tipo.

Los valores mximo y mnimo que puede represen-


tar.

Los miembros (mtodos, campos, eventos, etc.) que


contiene.

El tipo base del que hereda.

10 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

2.2. Funciones

Una funcin es un bloque de cdigo que realiza x ope-


raciones y puede devolver o no algn valor. Su principal
usabilidad es aclarar y reutilizar la programacin, por
ejemplo, si trabajramos con todo el cdigo de una apli-
cacin sera muy difcil de leer y de mantener.

Para tener una mayor claridad sobre las funciones, de-


bemos saber que a las funciones dentro de las clases les
llamamos mtodos. Esto se debe a que C# slo admite
funciones dentro de clases, por lo tanto todo lo que nos Ejemplo de if y if else
encontraremos son los llamados mtodos.
b)La instruccin switch: en C#, la instruccin switch pro-
porciona mltiples operaciones de bifurcaciones condi-
cionales. En C# se exige el uso de una instruccin break
o goto al final de cada caso y si no hay ninguna presen-
2.3. Control de Flujo te, el compilador produce el siguiente error: el control
no puede pasar explcitamente de una etiqueta de caso
a otra. Se debe tener en cuenta que donde un caso no
especifica un cdigo para ejecutar cuando coincide ese
Para controlar el flujo de cdigo en un programa es ne- caso, el control pasar al siguiente.
cesaria la utilizacin de instrucciones de control de flu-
jo. Dentro de C# las usadas son if else y switch. Estas Al utilizar goto en una instruccin switch, solo se puede
instrucciones de bifurcacin cambian el flujo de la eje- saltar a otro bloque de casos en el mismo modificador.
cucin del programa en cuanto al tiempo, segn ciertas Si desea saltar al caso predeterminado, debe utilizar
condiciones. A continuacin, definiremos cada una de goto default. De lo contrario, utilice goto case cond, don-
ellas. de cond es la condicin que coincide con el caso al que
desee saltar. En C# se permite realizar cambios en una
a) if, else y else if: en la gran mayora de los programas variable de cadena.
ser necesario tomar decisiones sobre qu acciones rea-
lizar. Estas pueden depender de datos que introduzca el
usuario, o de si se ha producido algn error. La estructura
condicional if else es la que nos permite tomar ese tipo
de medidas. Traducida literalmente del ingls, se podra
llamar la estructura si...si no, es decir, si se cumple la
condicin, haz esto, y si no, haz esto otro.

Ejemplo de switch en C#

11
En el mbito de la programacin nos encontramos tam- Instruccin dowhile: variante de while que evala
bin con otro tipo de instrucciones, estas son las instruc- la condicin al final del bucle. Las instrucciones se
ciones iterativas, estas sirven para ejecutar las mismas ejecutan por lo menos una vez. Su sintaxis es:
instrucciones de un cdigo ms de una vez, determinado
por una condicin. Estas tambin son conocidas como
bucles.

do
{
//Instrucciones a ejecutar
} while (condicin);
NO
<condicin>

Ejemplo:

SI int i = 0;
do
[Bloque de Instrucciones {
A repetir] Console.WriteLine(i);
i++;
} while(i < 10); // 0 1 2 3 4 5 6 7 8 9

Ejemplo de diagrama de una instruccin iterativa


Instruccin for: variante de while que permite redu-
cir el cdigo necesario para los bucles ms utiliza-
Instruccin while: permite ejecutar un bloque de dos. Su sintaxis es:
instrucciones mientras (while) se d una determina-
da condicin. Su sintaxis es:

while (condicin)
{ for(inicializacin;condicin;modificacin)
{
//Instrucciones a ejecutar //Instrucciones a ejecutar
} }

Ejemplo: Ejemplo:

int i = 0; for(int i = 0; i < 10; i++)


while(i < 10) { {
Console.WriteLine(i); Console.WriteLine(i);
i++; } // 0 1 2 3 4 5 6 7 8 9
} // 0 1 2 3 4 5 6 7 8 9

12 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

2.4. Input, Output con C#

Si existen diversos valores en la inicializacin y modifi- La interaccin entre el usuario y el programa se realiza
cacin estos deben ser separados por comas (,), tal como por el intercambio de informacin entre ellos a travs
se muestra a continuacin: de los input (ingreso de informacin) y output (obten-
cin de informacin desde la consola), esto permite que
exista una comunicacin entre el usuario y el programa.
for(int i = 0, j = 10; i < 10; i++, j--) {
La consola permite que esta comunicacin sea simple
Console.WriteLine(({0} {1}), i, j); y es tradicionalmente la que se utiliza entre usuarios y
programas. Dentro de la consola es la clase Console, la
} //(0 10)(1 9)(2 8)(3 7)(4 6)(5 5)(6 4)(7 3)(8 2)(9 1) cual permite acceder a las secuencias estndar de entra-
da, salida y error. Esta clase solo tiene sentido para apli-
caciones de consola, ya que permite la compatibilidad
entre ellas. Las entradas y salidas asociadas a la consola
Instruccin foreach: variante de for para el trata- son:
miento de todos los elementos de una coleccin. Su
sintaxis es: Entrada estndar: teclado.

Salida estndar: pantalla.

foreach(tipoElemento elemento in coleccin) Error estndar: pantalla.


{
//Instrucciones a ejecutar
} Es posible redireccionar todas las secuencias que vere-
} mos a continuacin. Para comenzar veremos las secuen-
cias de salida.

Console.Write y Console.WriteLine: muestran infor-


macin en la pantalla de la consola.
Ejemplo:
WriteLine: enva un fin de lnea/retorno de carro.
public static void Main(string[] args) {
foreach(string dato in args) {
Console.WriteLine(dato); Estos mtodos son sobrecargados, por lo cual es posi-
} ble emplear una cadena de formato y parmetros, tales
} como:

-Formatos de texto.
-Formatos numricos.

Dentro de las secuencias de entrada tenemos:

Console.Read y Console.ReadLine: leen informa-


cin introducida por el usuario, donde: Read lee el
siguiente carcter y ReadLine lee toda la lnea intro-
ducida.

13
2.5. Manejo de excepciones

Preparan los programas para lo inesperado. Tradi-


cionalmente, los mtodos devuelven cdigos infor- try{
mativos, donde el cdigo de la lgica del programa instrucciones
y el del tratamiento del error estn mezclados. Las }catch(excepcin1)
razones de que esto ocurra son: {
tratamiento1
Todos los cdigos de error son parecidos. }
catch(excepcin2)
Los cdigos de error no son significativos por s mis- {
mos. tratamiento2

Los cdigos de error se definen a nivel de mtodo. }
finally
Los cdigos de error son muy fciles de ignorar. instruccionesFinally

Para poder indicar y controlar los errores producidos


el tiempo de ejecucin crea objetos de excepcin.
Estos a su vez se definen a travs de System. Excep- Tambin el Bloque catch general puede capturar cual-
tion, lo cual proporciona informacin clara sobre el quier excepcin independientemente de su clase, pero
cdigo generado del error ocurrido. no proporciona informacin detallada acerca del error
atrapado por el catch(Excetion ex).
Una de las instrucciones que nos puede servir para
controlar errores es: Aunque en un comienzo de la programacin se pueden
introducir cdigos e instrucciones que ayuden a contro-
Instruccin trycatch: separa la lgica del programa lar posibles errores, los programadores pueden lanzar
del tratamiento del error. Se realiza para controlar las excepciones del sistema o las suyas propias a travs
posibles errores mientras se ejecuta el cdigo. Su de la instruccin throw, el programador puede lanzar ex-
sintaxis es: cepciones propias fabricadas por l, como por ejemplo
en el caso de validar un rango de edad.

If (edadTrabajado<18 )
throw new Exceptio(Edad Trabajador no valida.);

Sintaxis lanzamiento de excepciones propias: throw


objetoExcepcinALanzar;

14 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

2.6. Generics

Los Generics (genricos) son la caracterstica ms po-


derosa de C# 2.0. y de versiones posteriores. Permiten
definir estructuras de datos con seguridad de tipos, sin
comprometerse con los tipos de datos reales. Esto se tra-
duce en un significativo aumento del rendimiento y el
cdigo de mayor calidad, porque se vuelve a utilizar los
algoritmos de procesamiento de datos sin necesidad de
duplicar el cdigo de tipo especfico. Conceptualmente,
los genricos son similares a las plantillas de C++, pero
son drsticamente diferentes en la aplicacin y capaci-
dades.

Los genricos en .NET permiten reutilizar el cdigo y el


esfuerzo que se pone en la aplicacin. Los tipos y los da-
tos internos pueden cambiar sin tener un code bloat
de cdigo, sin importar si se est utilizando el valor o
tipos de referencia. Por tanto, se puede desarrollar, pro-
bar y desplegar un cdigo una vez, volver a utilizarlo con
cualquier tipo, todo ello con el apoyo del compilador
completo y la seguridad de tipos. Debido a que el cdigo
genrico no obliga al boxes y unboxing de tipos de valor,
o el abatimiento de los de referencia el rendimiento me-
jora considerablemente. Con los de valor por lo general
hay un aumento del rendimiento del 200% y con los de
referencia se puede esperar una ganancia de de hasta el
100 por ciento en el acceso al tipo (por supuesto, la apli-
cacin en su conjunto puede o no experimentar mejora
de rendimiento).

15
Tema 3: Programacin de OO con C#

Dentro de este paradigma, la programacin es adquisicin de conocimiento de la realidad que queremos modelar,
en pos de construir un modelo computacional de la misma. Asociamos entonces a entes de la realidad, objetos del
mundo computacional con el objetivo de construir un patrn de simulacin de la misma.

La OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolucin del problema
se realiza en trminos de estos, es decir, es un lenguaje orientado a objetos, ya que los elementos esenciales de
construccin del software son objetos y mensajes. Este tipo de programacin implica entre otros beneficios, una
gran capacidad de reutilizacin, ya que una vez que hemos encontrado un mecanismo para resolver un problema,
lo usamos para alcanzar el mismo resultado exitoso una y otra vez.

Pero, qu se entiende por objeto?, lo podemos definir contiene en su interior cierto nmero de componentes
como un conjunto complejo de datos y programas que bien estructurados. Otro aspecto fundamental, es que
poseen estructura y forman parte de una organizacin. este no es un ente aislado, sino que forma parte de una
Esto detalla elementos importantes de los objetos. En- organizacin jerrquica o de otro tipo.
tendemos que un objeto no es un dato simple, sino que

16 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

3.1. Clases en C# Miembros de clase: son los diversos elementos que


conforman la clase (datos, y mtodos), cada clase
puede tener distintos miembros, entre los que se in-
Una clase es una construccin que permite crear tipos cluyen las propiedades que describen los datos de
personalizados propios mediante la agrupacin de va- clase, los mtodos que definen el comportamiento
riables de otros tipos, mtodos y eventos. Es como un y los eventos que proporcionan comunicacin entre
plano. Define los datos y el comportamiento de un tipo. distintos objetos y clases.
Si esta no se declara como esttica, el cdigo de cliente
puede utilizarla mediante la creacin de objetos o ins- Los campos y propiedades representan informacin que
tancias que se asignan a una variable. contiene un objeto. A continuacin veremos ambos.

En ese momento, CLR la marca como apta para la reco- Campos: se parecen a las variables ya que se pue-
leccin de elementos no utilizados. Si la clase se declara den leer y establecer directamente. Tanto C# como
como esttica, solo existe una copia en memoria y el c- Visual Basic permiten crear un campo privado para
digo de cliente solo puede tener acceso a ella a travs de almacenar el valor de propiedad o bien usar las
la propia clase y no de una variable de instancia. denominadas propiedades de implementacin au-
tomtica que crean este campo en segundo plano
automticamente, proporcionando la lgica bsica
para los procedimientos de propiedad.
Para obtener ms informacin, revisa el
enlace web en plataforma: Propiedades: tienen procedimientos get y set, que
proporcionan un mayor control sobre la forma en
Clases estticas y sus miembros. que se establecen o devuelven los valores. La ma-
yora de las propiedades tienen mtodos o procedi-
mientos para configurar y obtener el valor de esta.
Sin embargo, se pueden crear propiedades de solo
lectura o solo escritura para restringir ambas accio-
nes.
3.2. Constantes, campos, m-
En Visual Basic se pueden utilizar las palabras clave Rea-
todos y propiedades. dOnly y WriteOnly. En C#, se puede omitir el mtodo de
propiedad get o set. Sin embargo, tanto en Visual Basic
como en C#, las propiedades implementadas automti-
Una clase puede tener sus propias constantes, campos, camente no pueden ser de solo lectura o de solo escri-
variables (llamadas propiedades), y funciones (llama- tura.
das mtodos). Recordemos que en una estructura de
datos tal como una clase puede estar formado por atri-
butos variables, es decir que su valor puede cambiar en
cualquier momento y /o constantes cuyo valor es inva-
riable.

17
3.3. Herencia 3.5. Enumeraciones

Esta, junto con la encapsulacin y el polimorfismo, es Una enumeracin es un tipo con valor especial, que de-
una de las tres caractersticas principales (o pilares) de riva de System.Enum, pueden ser de tipo byte, int32 o
la programacin orientada a objetos. La herencia permi- uint64, los campos son literalmente estticos, cada uno
te crear nuevas clases que reutilizan, extienden y modi- representa una constante.
fican el comportamiento que se define en otras clases.
Cuando los miembros se heredan se denomina clase Cules son sus restricciones?:
base y la clase que hereda esos miembros se denomina
clase derivada. Una clase derivada solo puede tener una No puedes definir tus propios mtodos.
clase base directa. Sin embargo, la herencia es transitiva.
Si ClassC se deriva de ClassB y ClassB se deriva de Clas- No puedes implementar interfaces.
sA, ClassC hereda los miembros declarados en ClassB y
ClassA. No puedes definir propiedades ni eventos.

Esto nos hace preguntarnos: para qu me sirven las


enumeraciones? Son ellas quienes nos proveen una se-
rie de mltiples opciones para los desarrolladores, ya
3.4. Espacios de nombre que su propsito es simplificar el cdigo y mejorarlo ,
habilitndolo para el uso de smbolos en lugar de sim-
ples valores numricos.
Los espacios de nombres son una manera de organizar
los distintos tipos que aparecen en un programa en C#.
Conceptualmente, es similar a una carpeta en un sis- 3.6. Eventos y delegados
tema de archivo del equipo. Al igual que las carpetas,
estos permiten a las clases tener un nombre completo
nico. Un programa en C# contiene uno o ms espacios
de nombres, que quedan definidos por el programador Un evento es un mensaje que enva un objeto cuando
o como parte de una biblioteca de clases previamente ocurre una accin. Esta puede estar causada por la in-
escrita. teraccin del usuario, como un clic, o por otra lgica del
programa. El objeto que lo provoca se conoce como re-
Por ejemplo, el espacio de nombres System incluye la mitente del evento. El objeto que captura el evento y
clase Console (una clase que contiene los mtodos para responde a l se denomina receptor de este mismo.
leer y escribir en la ventana de la consola). El espacio
de nombres System tambin contiene mltiples espa- En las comunicaciones de eventos, el remitente no sabe
cios de nombres diferentes, como System.IO y System. qu objeto o mtodo recibir los eventos que provo-
Collections. Solo .NET Framework tiene ms de ochenta ca. Se necesita un intermediario (o mecanismo de tipo
espacios de nombres, cada uno con miles de clases: es- puntero) entre el origen y el receptor. .NET Framework
tos se utilizan para minimizar la confusin que se podra define un tipo especial (Delegate) que proporciona la
producir entre tipos y mtodos con nombres parecidos. funcionalidad de un puntero a funcin.

Si escribe una clase fuera de una declaracin de espacio


de nombres, el compilador proporcionar un espacio de
nombres predeterminado para esa clase.

18 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

Un delegado es una clase que puede guardar una re-


ferencia a un mtodo. A diferencia de otras clases, una 3.8. Ensamblados
clase de delegado tiene un prototipo y puede guardar
referencias nicamente a los mtodos que coinciden
con su prototipo. Por lo tanto, un delegado equivale a un
puntero a funcin con seguridad o a una devolucin de
llamada. Aunque los delegados tienen otros usos, esta Estos componen la unidad fundamental de implementa-
explicacin se centra en la funcionalidad de control de cin, control de versiones, reutilizacin, mbito de acti-
eventos de los delegados. Una declaracin de delegado vacin y permisos de seguridad en una aplicacin basa-
es suficiente para definir una clase de delegado. La de- da en .NET. Adoptan la forma de un archivo ejecutable
claracin proporciona el prototipo del delegado y Com- (.exe) o un archivo de biblioteca de vnculos dinmicos
mon Language Runtime proporciona la implementacin. (.dll) y son los bloques de creacin de .NET Framework.
Proporcionan a Common Language Runtime la informa-
cin que necesita para estar al corriente de las imple-
mentaciones de tipos. Un ensamblado puede entender-
3.7. Expresiones Lambda se como una coleccin de tipos y recursos que forman
una unidad lgica de funcionalidad y que se compilan
para trabajar conjuntamente.

Es una funcin annima que se puede usar para crear Los ensamblados pueden contener uno o ms mdulos.
tipos delegados o de rbol de expresin. Al utilizarlas, Por ejemplo, los proyectos de mayor envergadura se
pueden escribir funciones locales que se pueden pasar pueden planificar de tal forma que varios desarrollado-
como argumentos o devolverse como valor de llamadas res individuales trabajen en mdulos separados y a la
de funcin. Son especialmente tiles para escribir ex- vez, todos juntos para crear uno solo.
presiones de consulta LINQ.

Para crear una expresin lambda, se especifican parme-


tros de entrada (si existen) a la izquierda del operador
=>lambda, y coloca la expresin o bloque de instruccio-
nes en el otro lado. Por ejemplo, la expresin lambda
x => x * x especifica un parmetro denominado x y de-
vuelve el valor x elevado al cuadrado. Se puede asignar
esta expresin a un tipo delegado, como se muestra en
el ejemplo siguiente:

delegate int del(int i);


static void Main(string[] args)
{
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}

19
RESUMEN
C# es un lenguaje de programacin simple pero
eficaz, diseado para escribir aplicaciones empre-
sariales.

Nace como una evolucin de los lenguajes C y C++,


utilizando muchas de las caractersticas de C++
en las reas de instrucciones, expresiones y ope-
radores, pero presentando considerables mejoras
e innovaciones en reas como seguridad de tipos,
control de versiones, eventos y recoleccin de ele-
mentos no utilizados (liberacin de memoria).

C# proporciona acceso a los tipos de API ms co-


munes: .NET Framework, COM, Automatizacin y
estilo C. Asimismo, admite el modo unsafe, en el
que se pueden utilizar punteros para manipular
memoria que no se encuentra bajo el control del
recolector de elementos no utilizados.

Desde el punto de vista profesional la tecnologa


.Net especficamente el lenguaje C# es una eficien-
te herramienta para el desarrollo aplicaciones web
distribuidas, que est en constante evolucin y ac-
tualizacin considerando la nuevas necesidades
del mercado en Tecnologas de informacin.

20 INACAP VIRTUAL
TALLER DE PROGRAMACIN lll
TI1209

BIBLIOGRAFA
Bibliografa obligatoria

Fergurson. J; Patterson, B; Beres, J. (2003) La Biblia


de C#. Ediciones Anaya Multimedia.

Bibliografa complementaria

Visual C# - MSDN - Microsoft

h t t p ://msdn.microsoft.com/en-us/lib ra r y /
kx37x362.aspx

21
INACAP VIRTUAL

También podría gustarte