02-c sharp basico parte iii v2.0
TRANSCRIPT
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 1/51
C# Básico
(Parte III)V2.0
Abril 2014
Ferreiras
1C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 2/51
Comentarios en C#
• Son del mismo tipo qe en C!!"
• $s n comentario de na l%nea
• &• $s n comentario de m's de na l%nea
&
2C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 3/51
Identificadores en C#
• Al i(al qe en C!! pero con la di)erencia de qe se peden sar la
e*e +* - el acento + .
• Anqe lo antes indicado es posible, / $S $C$/3AB$, por
asnto de tener n estilo est'ndar de c5di(o
• ...
6C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 4/51
Tipos de datos en C#
• Un tipo es na cate(or%a, especie o clase c-os constit-entes
comparten caracter%sticas comnes qe permiten distin(ir entre no -
otro.
• $n n entorno de pro(ramaci5n dado, los tipos determinan los datos
- las operaciones qe se peden reali7ar sobre ellos.
4C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 5/51
Tipos de datos en C#
• $n C#, la in)ormaci5n almacenada en n tipo pede
inclir"
• $l espacio de almacenamiento reqerido por na 8ariable de dic9o
tipo• $l ran(o de 8alores : m%nimo, m';imo < qe pede representar • os miembros + m=todos, campos, ... a los qe pede acceder.• as operaciones qe son permitidas.• $l tipo base del cal desciende.
• a posici5n de A asi(nada en tiempo de e>ecci5n
?C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 6/51
Tipos de datos en C#
• C# es n len(a>e )ertemente tipiado. Cada 8ariable o constante tiene n tipo, as%
como tambi=n cada e;presi5n qe e8al@a a n 8alor. Cada )irma de m=todo especi)ica n
tipo para cada par'metro - para el 8alor de retorno.
• n pro(rama t%pico de C# tili7a los tipos pro8enientes de la biblioteca de clases, as%
como tipos de)inidos por el sario qe modelan los conceptos qe son espec%)icos deldominio del problema del pro(rama.
• or de)ecto, los tipos de so m's )recente de la biblioteca de clases del FrameorD
./$E est'n disponibles en calqier pro(rama de C# +S-stem. tros tipos estar'n
disponibles a(re(a e;pl%citamente, mediante sin(, na re)erencia al namespace qe lo
contiene.
• 3esp=s de qe el compilador tiene na re)erencia namespace pede declarar 8ariables
+- constantes de los tipos declarados en dic9os namespace..
C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 7/51
Tipos de datos en C#
• Tipos intrínsecos o predefinidos del lenguaje
• C # proporciona n con>nto est'ndar de tipos nm=ricos intr%nsecos para
representar 8alores enteros, de pnto )lotante, e;presiones booleanas,
caracteres de te;to, 8alores decimales - otros tipos de datos.
• E9ere are also biltGin string and object t-pes.
HC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 8/51
Tipos de datos en C#
• $n C#, todos los tipos deri8an de la clase base S-stem.b>ect
• Eodos los tipos, inclidos los tipos nm=ricos prede)inidos, deri8an en
@ltima instancia de n solo tipo de base, qe es S-stem.b>ect.
• $n C# 9a- dos tipos de datos"
• Intr%nsecos o prede)inidos +biltGin
• 3e)inidos por el desarrollador + serGde)ined t-pes .
C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 9/51
Tipos de datos en C#
Types built-in C# types
Type Bytes Description Default
valuebyte 1 unsigned byte 0
sbyte 1 signed byte 0
short 2 signed short 0
ushort 2 unsigned short 0
int 4 signed integer 0
uint 4 unsigned integer 0
long 8 signed long 0L
ulong 8 unsigned long 0
foat 4 foating point number 0.0
double 8 double preision number 0.0ddeimal 8 !"ed preision number 0.0m
string niode string
char 2 niode har
bool 4 true$ alse boolean
• Intrínsecos o predefinidos (built-in)
$l tipo car
representa ncar'cter /IC3$,
lo cal permite
representar
calqier car'cter
de calqier
len(a.
JC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 10/51
Tipos de datos en C#
• !ote"
• Type range in C# and C++ are different,example, long in C++ is 4 bytes, and in C# it
is 8 bytes.
• Also the bool and string types are differentthan those in C++. bool accepts only true
and false and not any integer.
• Intrínsecos o predefinidos (built-in)
10C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 11/51
Tipos de datos en C#
• Ke-ords )or biltGin C# t-pes, 9ic9 are aliases o) prede)ined t-pes int9e S-stem namespace.
C# Tpe $!%T &rame'or
Tpe
bool S-stem.Boolean
b-te S-stem.B-te
sb-te S-stem.SB-te
c9ar S-stem.C9ar
decimal S-stem.3ecimal
doble S-stem.3oble
)loat S-stem.Sin(le
int S-stem.Int62
int S-stem.Int62
lon( S-stem.Int4
lon( S-stem.Int4
object S-stem.b>ect
s9ort S-stem.Int1
s9ort S-stem.Int1
string S-stem.Strin(
• All o) t9e t-pes in t9e table,
e;cept object and string, are re)erred
to as simple tpes.
• E9e C# t-pe De-ords and t9eir
aliases are interc9an(eable.
• Intrínsecos o predefinidos (built-in)
11C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 12/51
Tipos de datos en C#• ummar of C#*s numeric tpes 'it te range of eac
12C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 13/51
Tipos de datos en C#• C#*s
Tpesste
m
16C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 14/51
Tipos de datos en C#
• +efinidos por el desarrollador (user-defined tpes)
• Eipos class• Eipos strct• Eipos Inter)ace• Eipos enm
• eg,n la parte de ./ 0ue usan, los tipos se di8iden en dos
cate(or%as"
• Eipo 8alor
• Eipo re)erencia• ..
14C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 15/51
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 16/51
Tipos de datos en C#• %l tipo struct en C# $!%T "
• • Strct is an encapslated entit-. Strct doesnLt ses complete oops concept
bt are sed )or ser de)ined data t-pe. All t9e member o) t9e strct 9as to be
initiali7ed, as it is 8ale t-pe.• • A strct is a simple serGde)ined t-pe, a li(9tei(9t alternati8e to a class. A
strctre in C# is simpl- a composite data t-pe consistin( o) a nmberelements o) ot9er t-pes.
• • Similar to classes, strctres 9a8e be9a8iors and attribtes. As a 8ale
t-pe, strctres directl- contain t9eir 8ale so t9eir ob>ect or instance is stored
on t9e stacD.• • Strts spport access modi)iers, constrctors, inde;ers, met9ods, )ields,
nested t-pes, operators, and properties.
1C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 17/51
Tipos de datos en C#• %l tipo struct en C# $!%T "
• In C!!, a strct is not 8er- di))erent )rom a class, e;cept )or t9e de)alt
accessibilit- o) members. E9e sitation is dramaticall- di))erent in C#.
• $8en t9o(9 -o se t9e ne operator, t9e strct (ets allocated on t9e stacD.
ore interestin( is t9e )act t9at -o sa- ne Foo+ and -et t9ere is no de)alt
constrctor. E9e call ne Foo+ does not reslt in a call to t9e parameterlessconstrctor, all it does is initiali7e t9e strctLs )ields to nll7ero
• 9ttp".codepro>ect.comArticles12StrctsGinGC
1HC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 18/51
Tipos de datos en C#• %l tipo struct en C# $!%T "
• Some points abot strcts• • Strct is sed to impro8e t9e per)ormance and clarit- o) code.• • Strct ses )eer resorces in memor- t9an class.• • M9en e 9a8e small and )reqent se o) some orD se strcts o8er classes.• • er)ormance can s))er 9en sin( strctres in sitations 9ere re)erence t-pes
are e;pected de to bo;in( and nbo;in(.• • No s9old pass strcts to met9od as re) parameters in order to a8oid t9e
per)ormance loss associated it9 cop-in( data.• • Strcts reside on t9e stacD, so e s9old Deep t9em small.• • Strcts canLt be in9erited and e can sa- t9e- are sealed.• • Strctre implicitl- in9erits )rom S-stem.ValeE-pe.• • E9e de)alt constrctor o) a strctre initiali7es eac9 )ield to a de)alt 8ale. No
cannot replace t9e de)alt constrctor o) a strctre.
• • No canLt de)ine destrctor )or strcts• • Strcts can be in9erited )rom an inter)aceO
• 9ttp".cGs9arpcorner.compload)ilepranindiastrctGinGCGS9arp
1C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 19/51
&
truct3$cs
csc.e;e 4.?
Ferreiras C# Eipos de datos en C# strct
&
sin( S-stemP
strct 3elincente Q
$n C#, por de)ecto, los miembros na strct son pri8ate.
A di)erencia de C!!, qe son pblic
pblic strin( nombreP $" es n tipo re)erencia
lon( cedla R 1264?HP $" lab00H042014.cs+6,16" error CS0?H6
" L3elincente.cedlaL" cannot 9a8e
instance )ield initiali7ers in strcts
pblic lon( cedlaP pblic doble montoobado P
1JC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 20/51
truct3$cs
todos los miembros de na strct deben ser iniciali7ados de esta manera, con n constrctor
&
pblic 3elincente+ lon( ced, doble mo Q
cedla R cedP
montoobado R moP
&
pblic 8oid mostrar3atos+ Q n metodo qe se de)ine dentro de la strct
Console.Mriteine+cedlaP
Console.Mriteine+montoobadoP
20C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 21/51
truct3$cs
Eestin(
class $strctra3elincente Q pblic nsa)e static 8oid ain+ Q
&
3elincente de R ne 3elincente+JJJJJ, 1264.?P
G $ CS022H" nsa)e code ma- onl- appear i) compilin( it9 nsa)e
G $l so de ne implica el so implicito de pntero lo cal, como 8eremos en el temade pnteros, es en C# n modo nsa)e.
&
3elincente deP
de.cedla R P
de.montoobado R ?H46H4P
de.mostrar3atos+P
21C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 22/51
truct3$cs
&
3"TFerreiras2TC#, i Codi(o C#Ucsc nsa)e Strct1.csicroso)t + Visal C# 200 Compiler 8ersion 6.?.60H2J.1
)or icroso)t + ./$E FrameorD 8ersion 6.?
Cop-ri(9t +C icroso)t Corporation. All ri(9ts reser8ed.
3"TFerreiras2TC#, i Codi(o C#UStrct1
?H46H4
3"TFerreiras2TC#, i Codi(o C#U
&
22C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 23/51
&
truct3b$cs
csc.e;e 4.?
Ferreiras C# Eipos de datos en C# strct
so de n constrctor para iniciali7ar los miembros de la strct
+ mas adelante, en el tema de clases, se amplia el concepto constrctor . n a8ance"
n constrctor es n metodo qe tiene el mismo nombre dela strct - no retorna nin(n
tipo de 8alor, anqe si pede tener parametros para en8iarle ar(mentosW. $n el tema
clases ampliaremos mas.
&
sin( S-stemP
strct 3elincente Q
pblic lon( cedlaP
pblic doble montoobado P
todos los miembros de na strct deben ser iniciali7ados de esta manera, con n constrctor
pblic 3elincente+ lon( ced, doble mo Q
cedla R cedP montoobado R moP
pblic 8oid mostrar3atos+ Q
Console.Mriteine+cedlaP
Console.Mriteine+montoobadoP
26C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 24/51
truct3b$cs
Eestin(
class $strctra3elincente Q
pblic nsa)e static 8oid ain+ Q
3elincente de R ne 3elincente+JJJJJ, 1264.?P
de.mostrar3atos+P
3elincente deP
de.cedla R P de.montoobado R ?H46H4P
de.mostrar3atos+P
24C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 25/51
truct3b$cs
&
3"TFerreiras2TC#, i Codi(o C#Ucsc 4unsafe truct3b$cs
icroso)t + Visal C# 200 Compiler 8ersion 6.?.60H2J.1
)or icroso)t + ./$E FrameorD 8ersion 6.?
Cop-ri(9t +C icroso)t Corporation. All ri(9ts reser8ed.
3"TFerreiras2TC#, i Codi(o C#U truct3b
JJJJJ1264.?
?H46H4
3"TFerreiras2TC#, i Codi(o C#U
&
2?C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 26/51
Tipos de datos en C#• Tipo enum
• enm +C# e)erence
9ttp"msdn.microso)t.comenGslibrar-sbbt4062.asp;
• a palabra cla8e enum se tili7a para declarar na enmeraci5n, n tipo qe
consiste de n con>nto de constantes con nombres en ANSCA llamada
la lista de enmeradores.
2C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 27/51
C# Basico, III 2H
&
enum5$cs
Ferreiras C# tipos de datos C# enm
&
sin( S-stemP
Eester class
class Fo)i Q
enm /ota Q $XC$$/E$, B$/, $YA, A P
pblic static 8oid ain+ Q
Console.Mriteine+ ZTn$XC$$/E$ esta en la posicion Z ! +int/ota.$XC$$/E$ P
Console.Mriteine+ ZTnB$/ esta en la posicion Z ! +int/ota.B$/ P
Console.Mriteine+ ZTn$YA esta en la posicion Z ! +int/ota.$YA P Console.Mriteine+ ZTnA esta en la posicion Z ! +int/ota.A P
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 28/51
C# Basico, III 2
enum5$cs
3"TFerreiras2TC#, i Codi(o C#U csc enm0.cs
icroso)t + Visal C# 200 Compiler 8ersion 6.?.60H2J.1)or icroso)t + ./$E FrameorD 8ersion 6.?
Cop-ri(9t +C icroso)t Corporation. All ri(9ts reser8ed.
3"TFerreiras2TC#, i Codi(o C#Uenm0
$XC$$/E$ esta en la posicion 0
B$/ esta en la posicion 1
$YA esta en la posicion 2
A esta en la posicion 6
3"TFerreiras2TC#, i Codi(o C#U
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 29/51
Tipos de datos en C#• 1os tipos referencia"
• Son creados sando el operador ne' + A di)erencia de C!!, no 9a- n
operador delete para estos tipos con el cal borrarlos e;pl%citamente .
• Son asi(nados en el 9eap de la A - son recolectados como basra
+(arba(e collector cando -a no son sados.
• Son colectados atom'ticamente por el (arba(e collector.
• Incluen"
• Los tipos lass
• Los tipos interae• Los tipos olletion$ omo el tipo array % el ual deri&a de la lase
'ystem.(rray )• Los tipos string % *l ual es un alias de la lase 'ystem.'tring )• Los tipo delegate % &er
http+,,msdn.mirosot.om,en-us,library,ms111.asp")
as adelente ser'n tratados
estos temas
2JC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 30/51
Tipos de datos en C#• 6tra categoría de tipo en C# son tipo puntero "
• san la misma sinta;is de C!!"
• tipo * unPuntero; declaraci5n de n pntero a n tipo + calqiera
de los anteriores
• $n el conte;to de C#, el c5di(o qe sa el tipo pntero es c5di(o inse(roW
• $n el tema nteros en C#, retomaremos el asnto.
• Ver mas en 9ttp"msdn.microso)t.comenGslibrar--61-9Deb.asp;
• ...
60C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 31/51
tpeof en C#• $s n operador de informaci7n de tipo tili7ado para obtener el ob>eto
S-stem.E-pe3 correspondiente a n tipo.• etorna n ob>eto de tipo E-pe• a sinta;is de so es" Type t = typeof(tipo);
3onde"
• E-pe⇒ $s la clase E-pe
• a clase E-pe representa declaraciones de tipos" tipos de clase, tipos de inter)a7,
tipos de arre(lo, tipos de 8alor, tipos de enmeraci5n, par'metros de tipo,de)iniciones de tipo (en=rico - tipos (en=ricos constridos abiertos o cerrados.
• tili7ar los miembros de E-pe para obtener in)ormaci5n acerca de na declaraci5n
de tipos.
• t-peo)⇒ $s el operador t-peo)
• tipo⇒ $s el tipo para el cal se qiere obtener el ob>eto S-stem.
3" Ver E-pe +clase en 9ttp"msdn.microso)t.comesGeslibrar-s-stem.t-pe+8R8s.110.asp;
61C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 32/51
tpeof en C#&
Tpeof%8ample$cs
Ferreiras C# peradores de in)ormacion de tipo tipeo)
&
sin( S-stemP
namespace Ferreiras Q class E-peo)$;ample Q
static 8oid ain+ Q
doble n3oble R 0.0064P Si no es iniciali7ada, $" se o) nassi(ned local 8ariable
)loat nFlotante R 6?.44)P Si no es iniciali7ada, $" se o) nassi(ned local 8ariable
E-peo)$;ample ob>1 R ne E-peo)$;ample+ P
E-pe t1 R t-peo)+E-peo)$;ampleP $l ob>eto E-pe retornado por t-peo) es asi(nado a t1
Console.Mriteine+ ZTnQ0Z, t1.EoStrin(+ P
&
b>ect.EoStrin( es el m=todo qe 3e8el8e na cadena qe representa al ob>eto actal.
&
62C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 33/51
tpeof en C# Tpeof%8ample$cs - continuaci7n
E-pe t2 R n3oble.YetE-pe+P
Console.Mriteine+t2.EoStrin(+P
E-pe t6 R n3oble.YetE-pe+P
&
$l m=todo b>ect.YetE-pe obtiene el ob>eto E-pe de la instancia actal
&
Console.Mriteine+t6.EoStrin(+P
E-pe t4 R nFlotante.YetE-pe+P
Console.Mriteine+t4.EoStrin(+P
3"TFerreiras2TC#, i Codi(o C#U Tpeof%8ample
Ferreiras$E-peo)$;ampleS-stem.3oble
S-stem.3oble
S-stem.Sin(le
3"TFerreiras2TC#, i Codi(o C#U
66C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 34/51
ecuencias de escape en C#
Ver en 9ttp"msdn.microso)t.comenGslibrar-92120b.asp;
%scape
e0uence
epresents
Ta Bell +alert
Tb BacDspace
T) Form)eed
Tn /e line
Tr Carria(e retrn
Tt [ori7ontal tab
T8 Vertical tab
TL Sin(le qotation marD
T Z 3oble qotation marD
TT BacDslas9
TO iteral qestion marD
T ooo ASCII c9aracter in octal notation
T; 99 ASCII c9aracter in 9e;adecimal notation
T; 9999 nicode c9aracter in 9e;adecimal notation i) t9is escape seqence is sed in a ideGc9aracter constant or a nicode strin(
literal.
For e;ample, MC[A ) R LT;4e00L or MC[A b:< R ZE9e C9inese c9aracter )or one is T;4e00.
64C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 35/51
9ariables en C#
• as 8ariables en C# son casi i(al qe en C!!, con e;cepci5n de las
si(ientes di)erencias"• eqieren ser iniciali7adas antes de s so, de lo contrario, se
(enerar' n error en tiempo de compilaci5n, esto es, acceder a na
8ariable iniciali7ada es imposible en C#.
• /o se pede acceder a n pntero loco + dan(lin( pointer
• na e;presi5n qe n elemento de n arre(lo m's all' de ss
l%mites no es accesible.
• /o 9a- 8ariables o )nciones (lobales en C#, el comportamiento de
las 8ariables (lobales se lo(ra a tra8=s )nciones est'ticas - 8ariablesest'ticas.
6?C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 36/51
.rreglos3 en C#
• $n C#, los arre(los )ncionan de manera similar a como lo 9acen en la ma-or%a
de los len(a>es de pro(ramaci5n. Sin embar(o, se debe tener en centa qe
en C#"
• os arre(los son ob>etos -• 1os corcetes se colocan despu:s del tipo - no desp=s del nombre de la
8ariable. os par=ntesis desp=s del identi)icador (eneran n error de
compilaci5n.• $l tama*o del arre(lo no es parte de s tipo como en CC!!. $sto permite
declarar n arre(lo - asi(narle calqier cantidad de elementos.• Son asi(nados en el 9eap de la A, por lo cal son tipo re)erencia.• /o se permite acceder a elementos )era de los l%mites del arre(lo• Se proporciona la )nci5n foreach para iterar el arre(lo.
• Se permite crear locali7aciones de elementos sando el operador ne.
3" Ver Arra-s Etorial en 9ttp"msdn.microso)t.comenGslibrar-aa24?6+8R8s.H1.asp;
6C# Basico, III
. l C#
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 37/51
.rreglos en C#,/ ArraysEjemplo.cs
erreiras , C# , (rreglos, delarain$ iniialiain
/,
using 'ystem3
lass (rrays*emplo 5
stati &oid 6ain%) 5
,, int arreglo 7 3 ,, *99:9+ ;ad array delarator+ ,, delara arreglo1 omo un arreglo de ual<uier tama=o ,, el tama=o del arreglo no es parte de su tipo$ omo en C,C>> ,, o sea$ <ue en los 7 no se ponen n?meros$ @o<uete AA ,, el tam=o se asigna on neB$ simplemente$ on los 5 int7 arreglo13
arreglo1 D neB int713 ,, 1 elementosarreglo1 D neB int7E3 ,, E elementos
,, delara un arreglo 1F int 7 array1 D neB int7G3
6HC# Basico, III
. l C#
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 38/51
.rreglos en C#ArraysEjemplo.cs - continuación -
lass (rrays*emplo 5
stati &oid 6ain%) 5,, delara e iniialia un arreglo 1F
int7 array2 D neB int7 5 1$ $ G$ $ H 3,, array2 iniialiado on otro tama=o
array2 D neB int7 51$ 2$ $ 4$ G$ E$ $ 8$ H$ 10 3,, delara e iniialia un arreglo 1F
int7 array D 5 1$ 2$ $ 4$ G$ E 3,, delara un arreglo 2F$ de 2 !las I olumnas
int 7 $ array2F D neB int72$ 3,, delara e iniialia un arreglo 2F de 2 !las I olumnas
int 7 $ otro(rray2F D 5 5 1$ 2$ $ 5 4$ G$ E 3,, delara un arreglo de arreglo de arreglo
,, ,, el primero tiene un tama=o de E elementos
int 7 7 array4 D neB int7E7 3,, establee &alores para los elementes del primer arreglo delanterior.
array470 D neB int78 5 1$ 2$ $ 4$ G$ E$ $ 8 3,, obser&e <ue se ambi el tama=o del primer arreglo
array47H D neB int7 5 1$ 2$ $ 4$ G$ E$ 3
6C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 39/51
.rreglos en C#&
.rreglo;+$cs
Ferreiras C# arre(los
&
sin( S-stemP
class Arre(lo23 Q
static 8oid ain+ Q
int i, >P
declaraci5n de arre(lo
strin( : , < ibros R ne strin(:6,6<P 6 X 6 R J elementos en total
)or +i R 0P i \ 6P i!! Q )or +> R 0P > \ 6P >!! Q
Console.Mrite+ZTn$ntre el nombre del libro : Q0, Q1 < R Z, i, > P
ibros:i,>< R Console.eadine+P
6JC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 40/51
.rreglos en C#.rreglo;+$cs - continuaci7n <
Console.Mriteine+ZTnTn&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ZP Console.Mriteine+Zos libros almacenados en el arre(lo son" TnTnZP
)ormatear la salida
Console.Mrite+ZTt1Tt2Tt6TnTnZP
)or +i R 0P i \ 6P i!! Q
Console.Mrite+ZQ0.TtZ, i ! 1P)or +> R 0P > \ 6P >!! Q
Console.Mrite+ZQ0TtZ, ibros:i,><P
Console.Mrite+ZTnZP
Console.Mriteine+ZTnTn&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ZP
Console.Mriteine+ZTnSA \$/E$U AA C/EI/AZP Console.eadine+P
40C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 41/51
.rreglos en C#.rreglo;+$cs - continuaci7n <
+"=&erreiras;=C#> /i Codigo C#?.rreglo;+
%ntre el nombre del libro @ 5> 5 A .+.
%ntre el nombre del libro @ 5> 3 A &6T.!
%ntre el nombre del libro @ 5> ; A BB
%ntre el nombre del libro @ 3> 5 A P616D
%ntre el nombre del libro @ 3> 3 A C#
%ntre el nombre del libro @ 3> ; A &#
%ntre el nombre del libro @ ;> 5 A D6
%ntre el nombre del libro @ ;> 3 A UBE
%ntre el nombre del libro @ ;> ; A C
41C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 42/51
.rreglos en C#.rreglo;+$cs - continuaci7n <
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
1os libros almacenados en el arreglo son"
3 ; G
3$ .+. &6T.! BB;$ P616D C# &#
G$ D6 UBE C
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
PU1. H%!T%? P.. C6!TI!U.
+"=&erreiras;=C#> /i Codigo C#?
42C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 43/51
foreac• $s na estrctra de control tipo bcle o ciclo, sada en C# para repetir o iterar al tra8=s de n
bloqe de sentencias para cada elemento en n arra- ob>eto de tipo Collection.
• Se debe tili7ar para leer - no se recomienda s so cambiar el contenido de los ob>etos Collection
porqe pede tener resltados impre8isibles.
• S sinta;is es como si(e"
)oreac9 + tipo identi)icador in e;presion Q
cerpo del bcle
3onde"
tipo⇒ $s el tipo del identi)icador
identi)icador⇒ /ombre de n iterador qe identi)ica cada elemento del arra- ob>eto Collection.
$;presion⇒ n ob>eto Collection o arra-
Cerpo del bcle ⇒ $s el bloqe de c5di(o qe se e>ectar' en cada recorrido del bcle o ciclo.
• $l c5di(o se e>ecta para cada elemento del arra- ob>eto Collection. 3esp=s, el control pasa a la
si(iente sentencia del cerpo del bcle.
46C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 44/51
foreac
• )oreac9 no sa n %ndice entero. $n s l(ar, sa na Collection - retorna cada
no de los elementos en orden, eliminando n posible error casado por mane>oincorrecto del %ndice de la Collection.
• $n la sentencia de n )oreac9 no es necesario especi)icar los l%mites m%nimos -
m';imos, -, tampoco, es necesario sar 8ariable entera para el control de la
e>ecci5n, como en el bcle )or.
• a palabra reser8ada de C# inW debe ser especi)icada - entonces el I3 del ob>eto
Collection o arre(lo, sobre el cal se 8as a iterar.
44C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 45/51
foreac,/ Foreach2.cs
erreiras , C# , oreah
/,
using 'ystem3
lass oreah2 5 stati &oid 6ain%) 5
,, arreglo para ser iterado on oreah
string7 nombreLargo D 5J'K(*'M*(9* 6:@(9T (96'T9:NO C:99*( M*9*@J$
JFP'N*Q L(NFP( 9:F9PO*@ R(9*@J$
JL:9*' F* S(LO(@ (L(Q( (F:L: KPTL*9J$ J'N(Q 6(9PN( M*9*@ C:N@(L*@J$ J*6(PL '(9*@ ;(9;:@(J$ JQ(6 CL:C (L*R(NF9: MP@(99: 9:R('J
3
4?C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 46/51
foreacForeach2.cs -continuación-
Console.riteLine%JUnJ)3 ,, bule on oreah
oreah % string ontrol in nombreLargo ) 5 Console.riteLine%ontrol)3
4C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 47/51
foreacForeach2.cs -continuación-
,/
F+Uerreiras2UC#$ 6i Codigo C#Vcsc Foreach2.cs6irosot %9) Sisual C# 2008 Compiler &ersion .G.02H.1or 6irosot %9) .N*T rameBorW &ersion .GCopyright %C) 6irosot Corporation. (ll rights reser&ed.
F+Uerreiras2UC#$ 6i Codigo C#V Foreach2
'K(*'M*(9* 6:@(9T (96'T9:NO C:99*( M*9*@FP'N*Q L(NFP( 9:F9PO*@ R(9*@L:9*' F* S(LO(@ (L(Q( (F:L: KPTL*9'N(Q 6(9PN( M*9*@ C:N@(L*@*6(PL '(9*@ ;(9;:@(
Q(6 CL:C (L*R(NF9: MP@(99: 9:R('
F+Uerreiras2UC#$ 6i Codigo C#V
/,
4HC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 48/51
foreac,/ foreachEjemplo.cs
erreiras , C# , oreah
/,
using 'ystem3
lass oreah*emplo 5
publi stati &oid 6ain%) 5 double 7 $ array2F D 5
5 4G$ GEE$ 8G $5 11$ 84$ 2E
3 Console.riteLine%JUnJ)3
int i D 03 ,,oreah% int elemento in array2F ) 5
Console.riteLine% J*l elemento 50 es D 51 J$ i$elemento )3 >>i3 4C# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 49/51
foreac
foreachEjemplo.cs -continuación-
F+Uerreiras2UC#$ 6i Codigo C#Voreah*emplo
*l elemento 0 es D 4G*l elemento 1 es D GEE*l elemento 2 es D 8G*l elemento es D 11*l elemento 4 es D 84*l elemento G es D 2E
F+Uerreiras2UC#$ 6i Codigo C#V
/,
4JC# Basico, III
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 50/51
. 2er más adelante
• Inde;er • Bo;in(nbo;in(• 3ele(ates
?0C# Basico, III
f i
8/18/2019 02-C Sharp Basico Parte III V2.0
http://slidepdf.com/reader/full/02-c-sharp-basico-parte-iii-v20 51/51
eferencias • E9e C# ro(rammin( an(a(eP Anders [e>lsber(, Scott Miltamt9, eter YoldeP
icroso)t ./$E 3e8elopment SeriesP AddisonGMesle- ro)essional, earson $dcation, Inc.,
E9ird $dition, 2004• • E-pes +C# ro(rammin( Yide
9ttp"msdn.microso)t.comenGslibrar-ms1H6104.asp;
• C# Concisel-P ]dit9 Bis9op, /i(el [ospoolP earson, Addison Misle- 2006.
• [ead First C#P Andre Stellman and ]enni)er Yreene P Second $ditionP ^eill- edia,
2010.
• 3esarrollo de aplicaciones ./$E con Visal C#P i(el odr%(e7 Y5me7GStern, arcos
Antonio Besteiro Yorosti7a(aP cYra2G[illInteramericana de $spa*a, S.A.., 2002.
• Visal C# an(a(e 9ttp"msdn.microso)t.comenGslibrar-aa2H??+8R8s.H1.asp;...
G
?1C# Basico III