Vous êtes sur la page 1sur 85

Intiouuccion a

C# .NET
lng. Ale[andro Caldern
El Lenguaje C#
C# es un lengua[e de programacln de propslLo general y
orlenLado a ob[eLos, el cual se basa en los lengua[es C, C++ y
!ava.

Ll lengua[e C# fue creado y esLandarlzado por Mlcroso en su
plaLaforma .nL1 y despues fue aprobado como un esLndar por
la LCMA (Luropean CompuLer ManufacLurers Assoclauon) y la
lSC (lnLernauonal Crganlzauon for SLandarlzauon).

C# uene acceso a la poderosa 8lblloLeca de Clases .nL1
lramework, lo cual permlLe el desarrollo rpldo de apllcaclones.
Niciosoft .NET
Ln el ano 2000, Mlcroso anuncl su lnlclauva .nL1, una vlsln
amplla para la uullzacln de la web en el desarrollo, lngenlerla,
dlsLrlbucln y uso de soware. La plaLaforma .nL1 no obllga al
programador a uullzar un solo lengua[e de programacln, slno
que permlLe la uullzacln de de cualquler lengua[e compauble
con .nL1 (C#, vlsual 8aslc, vlsual C++ y oLros).

Ll .nL1 lramework se encarga de la e[ecucln de apllcaclones y
conuene la 8lblloLeca de Clases de .nL1 lramework la cual
permlLe la creacln rplda de apllcaclones. La 8lblloLeca de
Clases de .nL1 lramework conuene mlles de clases pre
consLruldas las cuales han sldo opumlzadas para maxlmlzar el
rendlmlenLo.
Common Language Runtime (CLR)
Ll CL8 es una parLe clave del .nL1 lramework. Se encarga de la
e[ecucln de programas y provee funclonalldad para faclllLar la
creacln y depuracln de apllcaclones.

LL CL8 es slmllar a una mqulna vlrLual y es el encargado de
compllar cdlgo ClL (Common lnLermedlaLe Language),
anLerlormenLe conocldo como MSlL (Mlcroso lnLermedlaLe
Language), a cdlgo mqulna nauvo.

Ll cdlgo fuenLe escrlLo en un lengua[e compauble con .nL1
prlmero es compllado a cdlgo ClL, luego el CL8 complla el
cdlgo ClL y lo Lransforma en cdlgo nauvo para el slsLema
operauvo.
Ll CL8 se encarga de la admlnlsLracln los slgulenLes servlclos
lmporLanLes:

AdmlnlsLracln de memorla
AdmlnlsLracln de hllos
Mane[o de excepclones
8ecoleccln de basura
Segurldad
Biagiama CLR
Bola Nunuo
Comentaiios
un comenLarlo es una seccln del programa que no es Lomada
en cuenLa por el compllador en el proceso de compllacln. Los
comenLarlos se uullzan normalmenLe para documenLar las
apllcaclones y me[orar su leglbllldad. Ln C#, al lgual que en
muchos oLros lengua[es, exlsLen dos formas de crear
comenLarlos:
ComenLarlos de una llnea: Son comenLarlos que comlenzan
con la secuencla // y Lermlnan hasLa donde llega la llnea de
cdlgo donde fueron denldos.
ComenLarlos dellmlLados: Son comenLarlos que pueden
abarcar ms de una llnea. LsLe upo de comenLarlo lnlcla con la
secuencla /* y nallza con la secuencla */.
Iuentificauoies
Los ldenucadores son nombres que los programadores ellgen
para nombrar a sus clases, meLodos, varlables, eLc.

un ldenucador puede esLar formado por leLras, numeros y
gulones ba[os. Sln embargo, su nombre slo puede empezar con
una leLra o un guln ba[o.

Ln C#, al lgual que en !ava y C/++, los ldenucadores son
senslbles a mayusculas. Ls declr, las varlables myvarlable y
Myvarlable son dlsunLas.

or convencln, los ldenucadores que selecclonemos para
nombrar nuesLras clases slempre comenzarn con una leLra
mayuscula.
Palabias ieseivauas
La uiiectiva !"#$%
La dlrecuva !"#$% le lndlca al compllador que uene que buscar
una clase que ser uullzada en la apllcacln. una de las
prlnclpales venLa[as de C# es la gran canudad de clases
predenldas que provee la blblloLeca .nL1, las cuales pueden
ser reuullzadas. LsLas clases se organlzan en unldades llamadas
$&'(")&*(" las cuales son colecclones de clases relaclonadas.
Ll con[unLo de namespaces de .nL1 es conocldo como 8lblloLeca
de Clases de .nL1 lramework.

Cada dlrecuva uslng ldenuca un namespace, el cual conuene
clases predenldas que uullzaremos en nuesLra apllcacln.
or e[emplo, la llnea !"#$% ,-".('/ lndlca que uullzaremos las
clases que esLn denldas denLro del namespace ,-".(', una
de ellas es la clase 01$"12(.
El mtouo '(#$
Ln una apllcacln C#, el punLo de paruda para comenzar la
e[ecucln de la mlsma esL denldo por el meLodo 3&#$. La
convencln para denlr nombres de meLodos es C# es slmllar a
la uullzada para denlr nombres de clases (leLra lnlclal
mayuscula).
La denlcln del meLodo !"#$ es la slgulenLe:

%&'(#) +,"-) ./#0 !"#$1+,2#$345 "23+6

1odas las apllcaclones C# deben Lener denldo un meLodo
!"#$, de lo conLrarlo no podrn ser e[ecuLadas.
Tipos ue Batos
LxlsLe una lnnldad de upos de daLos que pueden ser uullzados
en C#, prlnclpalmenLe debldo a que podemos denlr nuesLros
proplos upos de daLos. Sln embargo, C# cuenLa con una serle de
upos de daLos prlmluvos predenldos los cuales se dlvlden en
las slgulenLes caLegorlas:

1lpos enLeros
1lpos con punLo oLanLe
CaracLeres
8ooleanos
Cadenas
Tipos Enteios
Tipos con Punto Flotante
0tios Tipos
vaiiables
Las varlables son poslclones de memorla en las que
almacenamos daLos.

Ln C#, para poder uullzar una varlable prlmero debemos
declararla, es declr, aslgnarle un nombre y un upo. La slnLaxls
para declarar una varlable en C# es la slgulenLe:

7-%/8 7$/9'2:8;

Sl lnLenLamos uullzar una varlable que no ha sldo declarada
obLendremos un error de compllacln.
L[emplos:

#$, :0"0;
#$, )/$,"0/2 < =;
>/", ?@ A@ B;
'A,: " < C@ '@ ) < DE;
Constantes
Las consLanLes, al lgual que las varlables, son poslclones de memorla
que almacenan un valor de un upo especlco, sln embargo, la
dlferencla prlnclpal es que el valor almacenado en una consLanLe no
puede camblar.

ara denlr consLanLes en C# uullzaremos la slgulenLe slnLaxls:

)/$+, 7-%/8 7$/9'2:8 < 7#$#)#"(#B")#F$8;

una consLanLe slempre debe lnlclallzarse al momenLo de ser denlda.
L[emplos:

)/$+, #$, B/$" < ED;
)/$+, >/", %# < GHIEIJ;
)/$+, )K"2 2:+%&:+," < L+M;
0peiauoies
Ll lengua[e C# cuenLa con dlsunLos upos de operadores. LsLos
operadores se pueden claslcar de acuerdo a la canudad de
operandos con los que Lraba[an:

Cperadores unarlos: lunclonan con un solo operando.
Cperadores blnarlos: lunclonan con dos operandos.
Cperadores Lernarlos: lunclonan con Lres operandos.


0peiauoies Natemticos
0peiauoi ue Concatenacion
0peiauoies ue Inciemento y
Beciemento
0peiauoies ue Asignacion
0peiauoies ue Compaiacion
0peiauoies a Nivel ue Bits
0peiauoies ue Asignacion a Nivel
ue Bits
0peiauoies Conuicionales
Pieceuencia ue 0peiauoies
El 0peiauoi Teinaiio
Ll operador Lernarlo es la forma ms slmple para reallzar
operaclones condlclonales. Su slnLaxls es la slgulenLe:

<condlcln> ? <resulLado verdadero> : <resulLado falso>,

L[emplo:

#$, $&9:2/ < C;
+,2#$3 ? < 1$&9:2/ << I=6 N O:+ #3&"( " I=P Q O$/ :+ #3&"( " I=P;
Entiaua y Saliua
Ll lengua[e C# provee la clase 01$"12( para la manlpulacln de
enLrada y sallda de daLos desde la consola o Lermlnal.
ara la sallda de daLos uullzaremos dos meLodos:

R/$+/(:HS2#,:(expresln): lmprlme en panLalla la expresln
lndlcada enLre parenLesls.
R/$+/(:HS2#,:T#$:(expresln): lmprlme en panLalla la
expresln lndlcada enLre parenLesls y luego salLa a la slgulenLe
llnea.

LsLos meLodos nos permlLen especlcar la poslcln de
argumenLos uullzando llaves [ } y una poslcln de argumenLo
empezando por 0. Cada argumenLo es colocado en su poslcln
correspondlenLe.
Ejemplo
ara leer valores desde el Leclado, la clase R/$+/(: lncluye el
meLodo U:"0T#$:16. LsLe meLodo lee cualquler enLrada desde el
Leclado y lo represenLa como +,2#$3.

Sl neceslLamos leer oLro upos de daLos, esLamos obllgados a
hacer converslones. ara ello, podemos uullzar el meLodo V"2+:
que se lncluye en cada uno de los upos de daLos prlmluvos.

or e[emplo:

#$, ? < #$,HV"2+:1R/$+/(:HU:"0T#$:166;
0/&'(: A < 0/&'(:HV"2+:1R/$+/(:HU:"0T#$:166;

Ejemplo
CLra forma de hacer converslones es uullzando la clase R/$.:2,
y sus meLodos:

1o8oolean()
1o8yLe()
1oChar()
1ououble()
1oueclmal()
1olnL16()
1olnL32()
1olnL64()
1oSLrlng()

Ejemplo
Contiol ue Flujo
LxlsLen dos meLodos fundamenLales para el conLrol de u[o de
un programa:

8lfurcaclones (declslones): Las blfurcaclones e[ecuLan cdlgo
de forma condlclonal, de acuerdo al resulLado de una
evaluacln.
8ucles (clclos): Los bucles e[ecuLan repeudamenLe un mlsmo
bloque de lnsLrucclones, ya sea una canudad especlca de
veces o mlenLras se cumpla una condlcln.
Bifuicaciones (uecisiones)
La senLencla #W: Ls la forma ms versul de Lomar declslones
en un programa. La slnLaxls de la senLencla #W es la slgulenLe:

XW 1)/$0#)#F$6Y
)F0#3/ " :Z:)&,"2 +# +: )&9%(: (" )/$0#)#F$
[ :(+: Y
)F0#3/ " :Z:)&,"2 +# $/ +: )&9%(: (" )/$0#)#F$
[
La senLencla +\#,)K: Ls slmllar a la senLencla #W ya que e[ecuLa cdlgo
condlclonal de acuerdo al resulLado de una condlcln. Sln embargo, un
+\#,)K nos permlLe evaluar muluples valores con una sola condlcln. La
esLrucLura bslca de un +\#,)K es la slgulenLe:
+\#,)K1."2#"'(:6Y
)"+: ."(/2IQ
#$+,2&))#/$:+
'2:"];
)"+: ."(/2DQ
#$+,2&))#/$:+
'2:"];
^
0:W"&(,Q
#$+,2&))#/$:+
'2:"];
[
Bucles (ciclos)
Clclo 0/: un clclo 0/ e[ecuLa un con[unLo de lnsLrucclones
mlenLras se cumpla una condlcln. Ll con[unLo de
lnsLrucclones es e[ecuLado por lo menos una vez. Su slnLaxls
es la slgulenLe:

0/Y
#$+,2&))#/$:+
[\K#(:1)/$0#)#F$6;
Clclo \K#(:: Ls slmllar al clclo do, su unlca dlferencla es que la
prueba de la condlcln se reallza al lnlclo y no al nal del clclo.
Su slnLaxls es la slgulenLe:

\K#(:1)/$0#)#F$6Y
#$+,2&))#/$:+
[

Sl la condlcln desde el lnlclo es falsa, el con[unLo de
lnsLrucclones nunca se e[ecuLa.
Clclo W/2: un clclo W/2 e[ecuLa un con[unLo de lnsLrucclones una
canudad deLermlnada de veces, llevando para ello su proplo
conLador. Su slnLaxls es la slgulenLe:
W/2 1#$#)#"(#B")#F$; )/$0#)#F$; /%:2")#F$6Y
#$+,2&))#/$:+
[
Inteiiupcion ue Ciclos
Algunas veces es necesarlo lnLerrumplr la e[ecucln de un clclo
debldo a una necesldad especlca. Ll lengua[e C# provee varlas
formas de lnLerrumplr un clclo:

'2:"]: Ll clclo Lermlna lnmedlaLamenLe.
)/$-$&:: Ll clclo Lermlna con su e[ecucln acLual y pasa a la
slgulenLe e[ecucln.
3/,/: ermlLe conunuar la e[ecucln en una euqueLa
especlca.
2:,&2$: 1ermlna la e[ecucln de una funcln.
Funciones
Las funclones son bloques de cdlgo que pueden ser e[ecuLados
desde cualquler punLo de una apllcacln. Adems del meLodo
Maln, podemos crear ms funclones en nuesLras clases:


Estiuctuia ue una Funcion
La esLrucLura bslca de una funcln en C# es la slgulenLe:

%&'(#) +,"-) 7-%/ 2:,/2$/8 7$/9'2: W&$)#F$817%"2_9:,2/+86
Y
)&:2%/ 0: (" W&$)#F$
42:,&2$ ."(/2;5
[


Tipo ue Retoino
La forma ms slmple de obLener daLos desde una funcln son
los valores de reLorno. 1odo valor de reLorno debe Lener un upo
asoclado. ara reLornar un valor desde una funcln se uullza la
senLencla 2:,&2$Q

2:,&2$ 7:?%2:+#F$8;

Ll upo de daLo correspondlenLe a la expresln debe ser el
mlsmo upo de daLo especlcado en la denlcln de la funcln.

Sl una funcln no reLorna nlngun valor, se puede omlur la
senLencla 2:,&2$ y el upo de reLorno debe ser declarado como
./#0.
Paimetios
Los parmeLros son elemenLos que nos permlLen pasar valores a
las funclones. Cada parmeLro uene un upo asoclado y son
envlados a las funclones en una secuencla separada por comas:

%&'(#) +,"-) 7-%/ 2:,/2$/8 7$/9'2: W&$)#F$81-%/I
%"2_9:,2/I@ -%/D %"2_9:,2/D@ ^ -%/` %"2_9:,2/`6Y
)&:2%/ 0: (" W&$)#F$
42:,&2$ ."(/2;5
[
Paimetios poi valoi y
Refeiencia
normalmenLe, los parmeLros que envlamos a una funcln se
pasan por valor, es declr, la funcln crea una copla del valor que
le envlamos y cualquler modlcacln que hagamos a dlcho valor
no se ree[ar en el programa prlnclpal.

Sln embargo, podemos lograr que una varlable sufra en el
programa prlnclpal los mlsmos camblos que haya sufrldo en una
funcln sl la envlamos como parmeLro por referencla.

ara envlar un parmeLro por referencla debemos uullzar la
palabra reservada 2:W.


Ejemplo: Paso poi valoi
Ejemplo: Paso poi iefeiencia
Aiieglos
un arreglo es una llsLa lndexada de varlables de un mlsmo upo
almacenadas en una mlsma esLrucLura. ara declarar un arreglo
en C# uullzaremos la slgulenLe slnLaxls:

7-%/845 7$/9'2:8;

Los arreglos deben ser lnlclallzados anLes de uullzarlos, esLo
slgnlca que nC podemos hacer algo como esLo:

#$,45 9#a22:3(/;
9#a22:3(/4I=5 < C;
LxlsLen dos formas de lnlclallzar un arreglo:
odemos especlcar dlrecLamenLe los valores que formarn nuesLro
arreglo:

#$,45 9#a22:3(/ < YEG@ b@ DE@ CJ@ I=@ G[;

odemos uullzar el operador new para aslgnar memorla a nuesLro
arreglo, especlcando su Lamano:
#$,45 9#a22:3(/ < $:\ #$,4C5;

1amblen podemos uullzar los dos meLodos comblnados, sln embargo,
los Lamanos deben colncldlr:

#$,45 9#a22:3(/ < $:\ #$,4C5 YDE@ bb@ Ic@ dD@ CG[;


Ciclos foieach
Los clclos W/2:")K nos permlLen recorrer fcllmenLe un arreglo
elemenLo por elemenLo. La slnLaxls de un clclo W/2:")K es la
slgulenLe:

W/2:")K17-%/8 7$/9'2:8 #$ 7"22:3(/86Y
#$+,2&))#/$:+
[

Ln cada pasada del clclo, la varlable <nombre> Lomar el valor
de un elemenLo del <arreglo>.
Ejemplo
Aiieglos Nultiuimensionales
un arreglo muludlmenslonal es un arreglo que uullza ms de un
lndlce para Lener acceso a sus elemenLos. ara denlr un
arreglo muludlmenslonal uullzaremos la slgulenLe slnLaxls:

7-%/84@5 7$/9'2:8;
7-%/84@@5 7$/9'2:8;
7-%/84@@@5 7$/9'2:8;

uependlendo de la canudad de dlmenslones que neceslLemos
uullzar. Los arreglos muludlmenslonales Lamblen deben ser
lnlclallzados anLes de poder uullzarlos.
ara lnlclallzar arreglos muludlmenslonales se uullzan los
ml smos dos meLodos que uul l zamos para arregl os
unldlmenslonales:

#$,4@5 "22:3(/I < Y YI@ D@ G[@ YE@ C@ J[@ Yc@ b@ d[ [;
#$,4@5 "22:3(/D < $:\ #$,4E@ C5;

Sl uullzamos un clclo W/2:")K para recorrer el arreglo1, los
elemenLos se recorren en el slgulenLe orden:

1, 2, 3, 4, 3, 6, 7, 8 ,9
Aiieglos ue Aiieglos
AparLe de los arreglos muludlmenslonales, C# permlLe la
creacln de arreglos de arreglos (Z"33:0 "22"A+) en los que las
las pueden ser de dlsunLas longlLudes. ara denlr un arreglo
de arreglos uullzaremos la slgulenLe slnLaxls:

7-%/84545 7$/9'2:8;

Sln embargo, la lnlclallzacln de esLe upo de arreglos es un poco
ms comple[a. LsLas lnlclallzaclones son lncorrecLas:

#$,4545 9#a22:3(/ < $:\ #$,4G54E5; //lnCC88LC1C!
#$,4545 9#a22:3(/ < Y YI@ D[@ Yb[@ YJ@ C[ [; //lnCC88LC1C!
una forma de lnlclallzar los arreglos de arreglos es crear cada
sub - arreglo por separado:

#$,4545 9#a22:3(/ < $:\ #$,4D545;
9#a22:3(/4=5 < $:\ #$,4G5;
9#a22:3(/4I5 < $:\ #$,4E5;

1amblen podemos hacerlo de la slgulenLe forma:

#$,4545 9#a22:3(/ < Y$:\ #$,45YI@ D[@ $:\ #$,45Yb[@ $:\ #$,45YJ@ C[[;
ara recorrer un arreglo de arreglos uullzando un clclo W/2:")K,
Lenemos que hacer el recorrldo por cada sub - arreglo de la
slgulenLe forma:

#$,4545 "22:3(/ < Y$:\ #$,45YE@ c@ D[@ $:\ #$,45YJ[@ $:\ #$,45YD@ C[[;
W/2:")K1#$,45 +&'"22:3(/ #$ "22:3(/6Y
W/2:")K1#$, ? #$ +&'"22:3(/6Y
R/$+/(:HS2#,:1?6;
[
[

Ll resulLado de esLe recorrldo es: 4 7 2 6 2 3
Enumeiaciones
Las enumeraclones nos permlLen denlr upos de daLos que
pueden Lomar un con[unLo nlLo de valores denldos por el
usuarlo. ara denlr una enumeracln en C#, se uullza la
slgulenLe slnLaxls:

:$&9 7$/9'2:8
Y
."(/2I@
."(/2D@
^
."(/2`
[
Ejemplo
Colecciones ueniicas
Ll .nL1 lramework provee una serle de clases que denen
colecclones generlcas las cuales se encuenLran agrupadas en el
namespace eA+,:9HR/((:)-/$+Hf:$:2#)H Las ms comunes son:

T#+,7g8: LlsLa enlazada
e,")]7g8: lla
h&:&:7g8: Cola

La Clase List<T>
La clase T#+,7g8 es una de las colecclones ms uullzadas. rovee un
arreglo dlnmlco de ob[eLos de un upo especlco. Sus meLodos ms
lmporLanLes son los slgulenLes:

a001g :(:9:$,/6: Agrega un elemenLo al nal de la llsLa.
R(:"216: Lllmlna Lodos los elemenLos de la llsLa.
R/$,"#$+1g :(:9:$,/6: ueLermlna sl un elemenLo se encuenLra en la
llsLa.
X$0:?iW1g :(:9:$,/6: uevuelve la poslcln de la prlmera aparlcln
de un elemenLo en la llsLa. Sl no lo encuenLra devuelve -1.
X$+:2,1#$, %@ g :(:9:$,/6: lnserLa el elemenLo en la poslcln p de la
llsLa.
U:9/.:1g :(:9:$,/6: 8orra la prlmera aparlcln de un elemenLo en
la llsLa y devuelve ,2&:. Sl no lo encuenLra devuelve W"(+:.
U:9/.:a,1#$, %6: 8orra el elemenLo que se encuenLra en la poslcln
p.
U:.:2+:16: lnvlerLe el orden de los elemenLos de la llsLa.

Ejemplo
La Clase Stack<T>
La clase e,")]7g8 represenLa una plla, la cual es una esLrucLura
LllC (LasL ln llrsL CuL) o ulumo en enLrar prlmero en sallr. Sus
meLodos ms lmporLanLes son los slgulenLes:

R(:"216: Lllmlna Lodos los elemenLos de la plla.
R/$,"#$+1g :(:9:$,/6: ueLermlna sl un elemenLo se encuenLra
en la plla.
V::]16: 8eLorna el elemenLo slLuado en el Lope de la plla.
V/%16: Lllmlna el elemenLo slLuado en el Lope de la plla y lo
reLorna.
V&+K1g :(:9:$,/6: lnserLa un elemenLo en el Lope de la plla.
Ejemplo
La Clase Queue<T>
La clase h&:&:7g8 represenLa una cola, la cual es una esLrucLura
lllC (llrsL ln llrsL CuL) o prlmero en enLrar prlmero en sallr. Sus
meLodos ms lmporLanLes son los slgulenLes:

R(:"216: Lllmlna Lodos los elemenLos de la cola.
R/$,"#$+1g :(:9:$,/6: ueLermlna sl un elemenLo se encuenLra
en la cola.
j:k&:&:16Q Lllmlna el elemenLo slLuado en el frenLe de la cola
y lo reLorna.
l$k&:&:1g :(:9:$,/6: lnserLa un elemenLo al nal de la cola.
V::]16: 8eLorna el elemenLo slLuado en el frenLe de la cola.
Ejemplo
Nanejo ue Cauenas
ara la manlpulacln de cadenas de LexLo, el lengua[e C# cuenLa
con la clase +,2#$3. La clase +,2#$3 conuene algunos meLodos
lmporLanLes para el mane[o de cadenas:

lk&"(+: Compara dos cadenas. 8eLorna ,2&: sl las cadenas son
lguales y W"(+: en caso conLrarlo.
e,"2,+S#,K: ueLermlna sl una cadena comlenza con la cadena
que se envla como parmeLro.
l$0+S#,K: ueLermlna sl una cadena Lermlna con la cadena
que se envla como parmeLro.
X$0:?iW: uevuelve la poslcln de la prlmera ocurrencla de un
carcLer en una cadena.
T"+,X$0:?iW: uevuelve la poslcln de la uluma ocurrencla de
una carcLer en una cadena.
e&'+,2#$31#$#)#/6: 8eLorna la subcadena que va desde la
poslcln lnlclo hasLa el nal de la cadena.
e&'+,2#$31#$#)#/@ (/$3#,&06: 8eLorna la subcadena que empleza
en la poslcln lnlclo y mlde la canudad de caracLeres
especlcada por longlLud.
R/$)",1)"0:$"I@ )"0:$"D6: Ls un meLodo esLuco que
concaLena dos cadenas y devuelve la cadena resulLanLe.
g/m%%:2: 8eLorna el conLenldo de la cadena converudo a
mayusculas.
g/T/\:2: 8eLorna el conLenldo de la cadena converudo a
mlnusculas.
g2#9: 8eLorna el conLenldo de la cadena sln espaclos a los
lados.
Ejeicicios
1. lmplemenLar una funcln que reclbe una llsLa de enLeros L y
un numero enLero n de forma que modlque la llsLa
medlanLe el borrado de Lodos los elemenLos de la llsLa que
Lengan esLe valor.
2. Lscrlblr una funcln 8eemplazar que Lenga como
argumenLos una plla con upo de elemenLo lnL y dos valores
lnL: nuevo y vle[o de forma que sl el segundo valor aparece
en algun lugar de la plla, sea reemplazado por el segundo.
3. lmplemenLar una funcln Merge que Lenga como
parmeLros dos llsLas de enLeros ordenados de menor a
mayor (Los numeros no necesarlamenLe son secuenclales) y
que devuelva una nueva llsLa como unln de ambas con sus
elemenLos ordenados de la mlsma forma.
Ejeicicios
4. Suponga que dos llsLas enlazadas son numeros enLeros
glganLescos (cada nodo es un dlglLo del numero), de modo
que se puedan sumar, lmplemenLe una funcln blgueclmal
que reclba dos llsLas de esLe upo y reLorne la llsLa resulLanLe
despues de sumar esLos dos numeros.
3. ConsLrulr una funcln que sume los elemenLos de una cola
de enLeros recurslvamenLe (la cola se reclbe como
parmeLro y la suma es el reLorno).
Clases y objetos
Las clases son aquellos upos de daLos que se denen para
represenLar un slsLema LoLal con nes especlcos, por ello
cada clase se dlsena para poder lnLeracLuar en un unlverso
descrlLo. Los ob[eLos son las varlables denldas medlanLe la
planulla de un ob[eLos especlco.
Las clases de C# poseen mlembros con dlferenLes crlLerlos de
denlcln enLre los que desLacan:
nlveles de acceslbllldad.
Mlembros sLauc y no sLauc.
Niveles ue Accesibiliuau
Niveles ue Accesibiliuau poi
uefecto
Nouificauoi static
ermlLe denlr mlembros cuya lnsLanclacln se lleva a cabo
anLes que cualqulera de los mlembros de la clase.
Ln el caso de los mlembros sLauc, esLos pueden ser usados sln
la necesldad de Lener una lnsLancla mlsma de la clase, sl no
unlcamenLe se hace referencla a Lraves del nombre de ella.
Los aLrlbuLos no sLauc no pueden ser llamados desde nlnguna
funcln o propledad que sea sLauc, pero las funclones y
propledades no sLauc sl pueden hacer uso de los aLrlbuLos
sLauc.
Ll valor de un aLrlbuLo sLauc se comparLe para Lodas la
lnsLanclas de esa clase.
Beiencia
La herencla es la especlallzacln de la denlcln de una clase
prevla, los crlLerlos de herencla para los mlembros de una
clase esLn relaclonados con los nlveles de acceslbllldad vlsLos
prevlamenLe.
La herencla puede consLrulrse a parur de la llnea de clases o
lnLerfaces o con la comblnacln de ambas.
Beiencia con clases abstiactas
Las clases absLracLas se denen con el ob[euvo de omlur la
lmplemenLacln de clerLas caracLerlsucas de una clase, que
por su nlvel de absLraccln con respecLo al unlverso no es
poslble lmprenLar o con el ob[eLo de someLer a las clases que
heredan de esLa, la lmplemenLacln de meLodos de forma
esLrlcLa, esLo colabora con el pollmorsmo.
Inteifaces
Las lnLerfaces son en pocas palabras clases puramenLe
absLracLas, la dlferencla mas pronunclada es que en las clases
absLracLas es poslble Lener meLodos LanLo absLracLos como no
absLracLos y los aLrlbuLos pueden no denlrse de forma nal o
consLanLe
Ejemplo heiencia con
inteifaces

Vous aimerez peut-être aussi