02-c sharp basico parte iii v2.0

51
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 1 C# Basico, III

Upload: dervinvictorianobremont

Post on 07-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 02-C Sharp Basico Parte III V2.0

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

Page 2: 02-C Sharp Basico Parte III V2.0

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

Page 3: 02-C Sharp Basico Parte III V2.0

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

Page 4: 02-C Sharp Basico Parte III V2.0

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

Page 5: 02-C Sharp Basico Parte III V2.0

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

Page 6: 02-C Sharp Basico Parte III V2.0

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

Page 7: 02-C Sharp Basico Parte III V2.0

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

Page 8: 02-C Sharp Basico Parte III V2.0

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

Page 9: 02-C Sharp Basico Parte III V2.0

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

Page 10: 02-C Sharp Basico Parte III V2.0

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

Page 11: 02-C Sharp Basico Parte III V2.0

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

Page 12: 02-C Sharp Basico Parte III V2.0

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

Page 13: 02-C Sharp Basico Parte III V2.0

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

Page 14: 02-C Sharp Basico Parte III V2.0

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

Page 15: 02-C Sharp Basico Parte III V2.0

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

Page 16: 02-C Sharp Basico Parte III V2.0

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

Page 17: 02-C Sharp Basico Parte III V2.0

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

Page 18: 02-C Sharp Basico Parte III V2.0

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

Page 19: 02-C Sharp Basico Parte III V2.0

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

Page 20: 02-C Sharp Basico Parte III V2.0

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

Page 21: 02-C Sharp Basico Parte III V2.0

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

Page 22: 02-C Sharp Basico Parte III V2.0

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

Page 23: 02-C Sharp Basico Parte III V2.0

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

Page 24: 02-C Sharp Basico Parte III V2.0

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

Page 25: 02-C Sharp Basico Parte III V2.0

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

Page 26: 02-C Sharp Basico Parte III V2.0

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

Page 27: 02-C Sharp Basico Parte III V2.0

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

 

Page 28: 02-C Sharp Basico Parte III V2.0

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

Page 29: 02-C Sharp Basico Parte III V2.0

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

Page 30: 02-C Sharp Basico Parte III V2.0

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

Page 31: 02-C Sharp Basico Parte III V2.0

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

Page 32: 02-C Sharp Basico Parte III V2.0

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

Page 33: 02-C Sharp Basico Parte III V2.0

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

Page 34: 02-C Sharp Basico Parte III V2.0

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

Page 35: 02-C Sharp Basico Parte III V2.0

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

Page 36: 02-C Sharp Basico Parte III V2.0

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#

Page 37: 02-C Sharp Basico Parte III V2.0

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#

Page 38: 02-C Sharp Basico Parte III V2.0

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

Page 39: 02-C Sharp Basico Parte III V2.0

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

Page 40: 02-C Sharp Basico Parte III V2.0

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

Page 41: 02-C Sharp Basico Parte III V2.0

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

Page 42: 02-C Sharp Basico Parte III V2.0

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

Page 43: 02-C Sharp Basico Parte III V2.0

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

Page 44: 02-C Sharp Basico Parte III V2.0

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

Page 45: 02-C Sharp Basico Parte III V2.0

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

Page 46: 02-C Sharp Basico Parte III V2.0

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

Page 47: 02-C Sharp Basico Parte III V2.0

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

Page 48: 02-C Sharp Basico Parte III V2.0

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

Page 49: 02-C Sharp Basico Parte III V2.0

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

Page 50: 02-C Sharp Basico Parte III V2.0

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

Page 51: 02-C Sharp Basico Parte III V2.0

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