Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El lenguaje de programación C#
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
Au t o r: Jo s é An t o n io Go n zá le z S e co
Cu rs o d is p o n ib le e n DOC y PDF e n la p á g in a we b d e l a u t o r.
I n d ic e d e c o n t e n id o s
● In t ro d u cció n a la o b ra
❍ Re q u is it o s p re vio s re co m e n d a d o s
❍ Es t ru ct u ra d e la o b ra
❍ Co n ve n io s d e n o t a ció n
● Te m a 1 : In t ro d u cció n a Micro s o ft . NET
❍ Micro s o ft . NET
❍ Co m m o n La n g u a g e Ru n t im e ( CLR)
❍ Micro s o ft In t e rm e d ia t e La n g u a g e ( MS IL)
❍ Me t a d a t o s
❍ En s a m b la d o s
❍ Lib re ría d e cla s e b a s e ( BCL)
❍ Co m m o n Typ e S ys t e m ( CTS )
❍ Co m m o n La n g u a g e S p e cifica t io n ( CLS )
● Te m a 2 : In t ro d u cció n a C#
❍ Orig e n y n e ce s id a d d e u n n u e vo le n g u a je
❍ Ca ra ct e rís t ica s d e C#
❍ Es crit u ra d e a p lica cio n e s
● Te m a 3 : El p re p ro ce s a d o r
❍ Co n ce p t o d e p re p ro ce s a d o r
❍ Dire ct iva s d e p re p ro ce s a d o
● Te m a 4 : As p e ct o s lé xico s
❍ Co m e n t a rio s
❍ Id e n t ifica d o re s
❍ Pa la b ra s re s e rva d a s
❍ Lit e ra le s
❍ Op e ra d o re s
● Te m a 5 : Cla s e s
❍ De fin ició n d e cla s e s
❍ Cre a ció n d e o b je t o s
❍ He re n cia y m é t o d o s virt u a le s
❍ La cla s e p rim ig e n ia : S ys t e m . Ob je ct
❍ Po lim o rfis m o
❍ Ocu lt a ció n d e m ie m b ro s
❍ Mie m b ro s d e t ip o
❍ En ca p s u la ció n
● Te m a 6 : Es p a cio s d e n o m b re s
❍ Co n ce p t o d e e s p a cio d e n o m b re s
❍ De fin ició n d e e s p a cio s d e n o m b re s
❍ Im p o rt a ció n d e e s p a cio s d e n o m b re s
❍ Es p a cio d e n o m b re s d is t rib u id o s
● Te m a 7 : Va ria b le s y t ip o s d e d a t o s
❍ De fin ició n d e va ria b le s
❍ Tip o s d e d a t o s b á s ico s
❍ Ta b la s
❍ Ca d e n a s d e t e xt o
❍ Co n s t a n t e s
❍ Va ria b le s d e s ó lo le ct u ra
❍ Ord e n d e in icia liza ció n d e va ria b le s
● Te m a 8 : Mé t o d o s
❍ Co n ce p t o d e m é t o d o
❍ De fin ició n d e m é t o d o s
❍ Lla m a d a a m é t o d o s
❍ Tip o s d e p a rá m e t ro s . S in t a xis d e d e fin ició n
❍ Mé t o d o s e xt e rn o s
❍ Co n s t ru ct o re s
❍ De s t ru ct o re s
● Te m a 9 : Pro p ie d a d e s
❍ Co n ce p t o d e p ro p ie d a d
❍ De fin ició n d e p ro p ie d a d e s
❍ Acce s o a p ro p ie d a d e s
❍ Im p le m e n t a ció n in t e rn a d e p ro p ie d a d e s
● Te m a 1 0 : In d iza d o re s
❍ Co n ce p t o d e in d iza d o r
❍ De fin ició n d e in d iza d o r
❍ Acce s o a in d iza d o re s
❍ Im p le m e n t a ció n in t e rn a d e in d iza d o re s
● Te m a 1 1 : Re d e fin ició n d e o p e ra d o re s
❍ Co n ce p t o d e re d e fin ició n d e o p e ra d o r
❍ De fin ició n d e re d e fin icio n e s d e o p e ra d o re s
❍ Re d e fin icio n e s d e o p e ra d o re s d e co n ve rs ió n
● Te m a 1 2 : De le g a d o s y e ve n t o s
❍ Co n ce p t o d e d e le g a d o
❍ De fin ició n d e d e le g a d o s
❍ Ma n ip u la ció n d e o b je t o s d e le g a d o s
❍ La cla s e S ys t e m . Mu lt ica s t De le g a t e
❍ Lla m a d a s a s ín cro n a s
❍ Im p le m e n t a ció n in t e rn a d e lo s d e le g a d o s
❍ Eve n t o s
● Te m a 1 3 : Es t ru ct u ra s
❍ Co n ce p t o d e e s t ru ct u ra
e s t a m u y in t e re s a n t e ( 1 9 / 1 0 / 2 0 0 2 )
Po r jo s e a n t o n io
co m o d e s ca rg o e l cu rs o co m p le t o d e c# , y s i t ie n e s cu rs o d e ja va vis u a l 6 in fo rm a m e , p u e s t e
a g ra d e s co q u e m e co n t e s t e s p u e s e s t o y a p re n d ie n d o p o co a p o co . . . . . Gra cia s
Fe lic it a c io n e s ( 1 6 / 1 0 / 2 0 0 2 )
Po r En riq u e Ló p e z
Mu ch ís im a s g ra cia s
c o m o b a ja r e s t e m a n u a l ( 1 4 / 1 0 / 2 0 0 2 )
Po r fa b ia n ro ja s
m e ju s t a ria t e n e r e s t e cu rs o e n m i p c
t e a g ra d e co s i m e d ice s co m o lo p u e d o h a ce r
¿ Co m o d e s c a rg a rlo ? ( 1 3 / 1 0 / 2 0 0 2 )
Po r Ara ce li
g ra cia s
Ex c e le n t e ( 0 8 / 1 0 / 2 0 0 2 )
Po r PABLO S OUR
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Buscar
» P D F ARTI CULOS
S e p u e d e n b u s ca r fra s e s co m p le t a s e n ce rra n d o la s e n t re co m illa s d o b le s ( ") y To d o s lo s a rt ícu lo s d e l
u s a r lo s o p e ra d o re s ló g ico s AND, OR y NOT. Po r d e fe ct o , b u s ca r m á s d e u n a 2 0 0 0 e n P D F.
p a la b ra d e lim it a d a s p o r e s p a cio s e q u iva le a u t iliza r e l o p e ra d o r AND.
» FORMACI ÓN
» D I RECCI ON ES
Bases de datos Leng. orientados a objeto
SQL, PostgreSQL... C++, Java...
Entornos de Desarrollo Lenguajes de script
Delphi, Visual Basic... Perl, JavaScript... » N UES TRAS ZON AS
Cu rs o s
» N UES TROS CURS OS Art ícu lo s
Fo rm a ció n
Últ im o s cu rs o s p u b lica d o s :
Fo ro s
Ne w 2 Ja va : Co n s t ru ir u n a Ap lica ció n : 4 . - Le e r y Es crib ir Fich e ro s y
» HEMOS GAN AD O
Ma n e ja r Exce p cio n e s [ Zo n a Ja va ] .
Op e ra cio n e s a va n za d a s co n JDBC y Ja va [ Zo n a Ja va ] .
Mo d e lo re la cio n a l [ Zo n a Ge n e ra l] .
El le n g u a je d e p ro g ra m a cio n C# [ Zo n a Ge n e ra l] .
Cu rs o d e Pro lo g a va n za d o [ Zo n a Ge n e ra l] .
Ma n e ja r Co n e xio n e s a Ba s e s d e Da t o s co n JDBC 3 . 0 [ Zo n a Ja va ]
Cu rs o d e XML [ Zo n a Ge n e ra l] .
S u p le m e n t o s a Ne w 2 Ja va [ Zo n a Ja va ] .
» N OVED AD ES
Cu rs o p rá ct ico d e Co rb a e n GNU/ Lin u x [ Zo n a Ge n e ra l] .
XML S ch e m a y DTDs [ Zo n a Ge n e ra l] .
1 7 - Oc t u b re 2 0 0 2
Má s cu rs o s : To d o s | Zo n a HTML | Zo n a Ja va | Zo n a AS P | Zo n a PHP Nu e vo a rt ícu lo e n
z o n a P HP : S MTP
u t iliza n d o S o cke t s e n
PHP.
CURS OS D E CAP ACI TACI ÓN P ROFES I ON AL ON - LI N E
h t t p : / / www. cib e ra u la . co m 1 3 - Oc t u b re 2 0 0 2
Cu rs o s : Ma s t e r e n Pro g ra m a ció n We b , Ja va , J2 EE, PHP, AS P, XML, WAP, Nu e vo a rt ícu lo e n
Dre a m we a ve r, Fla s h , Act io n S crip t , Me t o d o lo g ía , Ba s e s d e d a t o s . z o n a Ja v a : De s p le g a r
S e rvle t s y Ap lica cio n e s
We b e n To m ca t y
» N UES TROS ARTÍ CULOS We b Lo g ic S e rve r.
» FOROS Prim e ra e n t re g a d e l
cu rs o : Mo d e lo
Alg u n o s d e n u e s t ro s fo ro s : Ult im o s m e n s a je s : re la cio n a l.
1 6 - S e p t ie m b re 2 0 0 2
Vis u a l Ba s ic
Nu e vo a rt ícu lo e n zo n a
Vis u a l Fo xPro
HTML: Cre a r u n
HTML fich e ro ro b o t s . t xt .
Ja va ( b á s ico )
1 3 - S e p t ie m b re 2 0 0 2
PHP
Nu e va zo n a t e m á t ica
XML
e n Pro g ra m a ció n e n
Ba s e s d e d a t o s y S QL ca s t e lla n o : ZONA PHP.
AS P
9 - S e p t ie m b re 2 0 0 2
S e rv. d e Ap lica cio n e s J2 EE
Nu e vo a rt ícu lo :
Má s fo ro s Tra b a ja r co n fich e ro s
e n PHP.
6 - S e p t ie m b re 2 0 0 2
» P ROGRAMACI ÓN EN CAS A S é p t im a y ú lt im a
e n t re g a d e l cu rs o : El
Acce s o a d e s ca rg a d e a rch ivo s PDF
le n g u a je d e
In fo rm a ció n s o b re p ro g ra m a ció n ( n o ve d a d e s , d ire ccio n e s ,
p ro g ra m a ció n C# .
a rt ícu lo s , e t c. ) t ra n q u ila m e n t e e n e l co rre o d e t u ca s a .
No m b re : S i ya p e rt e n e cía s a la lis t a d e d is t rib u ció n » RECOMEN D AD OS
d e n o ve d a d e s d e Pro g ra m a ció n e n
La Va ria b le
Pa s s wo rd : ca s t e lla n o , s e t e h a a s ig n a d o co m o
n o m b re y p a s s w o rd t u d ire c c ió n d e Ma e s t ro s d e l We b
c o rre o e le c t ró n ic o We b Exp e rt o
Po r e l co n t ra rio , s i e s a ú n n o e s t a s
Enviar re g is t ra d o h a z clic a q u í p a ra d a rt e d e a lt a
Añ a d ir u n a d ire c c ió n
De s d e a q u í p u e d e u s t e d co la b o ra r co n Pro g ra m a ció n e n ca s t e lla n o a ñ a d ie n d o t a n t a s d ire ccio n e s d e
s it io s s o b re p ro g ra m a ció n co m o u s t e d d e s e e . Un m ie m b ro d e Pro g ra m a ció n e n ca s t e lla n o la s
vis it a rá y p u n t u a rá a n t e s d e a ñ a d irla s a n u e s t ra s p á g in a s . Po r fa vo r, re lle n e e l s ig u ie n t e fo rm u la rio :
No m b re d e la p á g in a :
Dire cció n d e la p á g in a :
http://
S u n o m b re :
Ca t e g o ría d o n d e s e in s crib e :
Ninguna
Co m e n t a rio s s o b re la p á g in a :
¡Gra cia s p o r co la b o ra r!
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cre a r u n a w e b d e P ro g ra m a c ió n e n c a s t e lla n o
Ta n t o s i ya t ie n e u n a we b s o b re p ro g ra m a ció n y d e s e a in co rp o ra rla a n u e s t ro s it io , co m o s i
q u ie re cre a r u n a d e s d e la n a d a , p a ra c o la b o ra r co n n o s o t ro s p o r fa vo r re lle n e e l s ig u ie n t e
fo rm u la rio :
No m b re d e la p á g in a :
X en castellano
S u n o m b re :
¿ Cu á l e s e l e s t a d o a ct u a l d e s u p á g in a ?
La página no existe
S i e s t á e n e l ú lt im o ca s o , p o r fa vo r in d iq u e n o s la d ire cció n a ct u a l d e s u p á g in a :
http://
Co m e n t e la p á g in a q u e d e s e a cre a r
¡Gra cia s p o r co la b o ra r!
© 1 9 9 9 - 2 0 0 0 , Jo a q u in Bra vo y Da n i Ro d rig u e z.
Pro g ra m a ció n e n ca s t e lla n o .
Cre a r u n c u rs o d e p ro g ra m a c ió n
S i d e s e a e n s e ñ a r p ro g ra m a ció n , la m a n e ra m á s s e n cilla e s c o la b o ra r co n n o s o t ro s cre a n d o u n
cu rs o p a ra Pro g ra m a ció n e n ca s t e lla n o . S i e s e e s s u d e s e o , p o r fa vo r re lle n e e l s ig u ie n t e
fo rm u la rio :
Te m a d e l cu rs o :
S u n o m b re :
¿ Cu á l e s e l e s t a d o a ct u a l d e s u cu rs o ?
El curso no existe
S i e s t á e n e l ú lt im o ca s o , p o r fa vo r in d iq u e n o s la d ire cció n a ct u a l d e s u cu rs o :
http://
Co m e n t e e l cu rs o q u e d e s e a cre a r
¡Gra cia s p o r co la b o ra r!
© 1 9 9 9 - 2 0 0 0 , Jo a q u in Bra vo y Da n i Ro d rig u e z.
Pro g ra m a ció n e n ca s t e lla n o .
Ba s e s d e
da to s
4 0 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s re la cio n a d a s co n la s b a s e s d e d a t o s y s u p ro g ra m a ció n ; le n g u a je s ,
h e rra m ie n t a s , e t c. . .
● Acce s s ( 3 )
● Ca ch é ( 4 )
● Micro s o ft S QL S e rve r ( 2 )
● MyS QL ( 6 )
● Ora cle ( 4 )
● Po s t g re S QL ( 5 )
● S QL ( 4 )
● S yb a s e ( 8 )
● Vis u a l Fo xPro ( 4 )
● Clip p e r & xBa s e @ ( 9 )
● Te o ría d e b a s e s d e d a t o s @ ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ba s e s d e
d a t o s . S QL
4 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re e l le n g u a je e s t á n d a r p a ra e l t ra t a m ie n t o d e b a s e s d e d a t o s S QL.
» EN ES TA P AGI N A
1 . Cu rs o s
Cu rs o s [ S u b ir]
4 d ire ccio n e s
Cu rs o d e S QL. d e a u la Clic
h t t p : / / www. a u la clic. o rg / s q l/ f_ s q l. h t m
2 1 9 1 4 vis it a s | Pu n t u a ció n : ( 2 8 vo t o s ) Vo t a
Ap re n d e S QL co n e s t e cu rs o re a liza d o co n rig o r p e ro co n u n le g u a je cla ro y s e n cillo . Co n e je m p lo s .
Ut iliza co m o m o t o r d e b a s e d e d a t o s e l Acce s s 2 0 0 0 .
Ma n u a l d e in t ro d u c c ió n S QL
h t t p : / / www. u n a v. e s / ct i/ m a n u a le s / In t ro _ S QL/ in d ice . h t m l
1 6 8 1 7 vis it a s | Pu n t u a ció n : ( 1 4 vo t o s ) Vo t a
Ma n u a l d e S QL o rg a n iza d o e n 1 1 le ccio n e s . Fo rm a p a rt e d e l Ce n t ro d e Te cn o lo g ía In fo rm á t ica d e
la Un ive rs id a d d e Na va rra .
Ma n u a le s d e S QL y b a s e s d e d a t o s
h t t p : / / www. lo b o co m . e s / ~ cla u d io / m e n u . h t m
3 6 8 7 7 vis it a s | Pu n t u a ció n : ( 1 1 1 vo t o s ) Vo t a
Un e xce le n t e m a n u a l e n ca s t e lla n o d e S QL ( o rie n t a d o a Acce s s ) , cre a d o p o r Cla u d io Ca s a re s , q u e
h a s id o co m p le t a d o co n cu rs o s m á s t e ó rico s s o b re m o d e la d o d e d a t o s , m o d e lo E/ R, d a t a
wa re h o u s in g , m o d e lo re la cio n a l, e t c. .
I n t e ra c t iv e / On - lin e S QL Tu t o ria l
h t t p : / / www. s q lco u rs e . co m
1 1 9 6 6 vis it a s | Pu n t u a ció n : ( 1 1 vo t o s ) Vo t a
Exce le n t e in t ro d u cció n a l S QL co n la p o s ib ilid a d d e p ro b a r t u s re cié n a d q u irid a s h a b ilid a d e s co n u n
in t é rp re t e d e S QL in clu id o e n la we b . Po d rá s t e cle a r t u s s e n t e n cia s m ie n t ra s e s t é s co n e ct a d o a l
cu rs o .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ba s e s d e
da to s .
P o s t g re S QL
5 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s in t e re s a n t e s s o b re e l s e rvid o r d e b a s e d e d a t o s g ra t u it o ( lice n cia BS D)
Po s t g re S QL.
» EN ES TA P AGI N A
1 . He rra m ie n t a s
2 . Art icu lo s
3 . Ge n e ra le s
He rra m ie n t a s [ S u b ir]
1 d ire cció n
P g Ac c e s s
h t t p : / / fle x. ro / p g a cce s s /
6 7 3 5 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
He rra m ie n t a g rá fica p a ra a d m in is t ra r Po s t g re S QL
Art ic u lo s [ S u b ir]
1 d ire cció n
I n s t a la c ió n d e u n s e rv id o r P o s t g re S QL
h t t p : / / www. p la n e t a lin u x. co m . a r/ a rt icle . p h p ? a id = 3 2
7 2 1 8 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Art ícu lo e n ca s t e lla n o e n e l q u e s e e xp lica co m o in s t a la r la b a s e d e d a t o s Po s t g re S QL.
Ge n e ra le s [ S u b ir]
3 d ire ccio n e s
P o s t g re S QL Mé x ic o
h t t p : / / www. p o s t g re s . o rg . m x/ in d e x. h t m l
1 0 9 1 5 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Pá g in a co n va ria d a in fo rm a ció n s o b re e s t e s is t e m a d e b a s e s d e d a t o s . En ca s t e lla n o y m a n t e n id a
p o r e l m e xica n o Ro b e rt o An d ra d e . Dis p o n e d e u n a lis t a d e co rre o .
P ro y e c t o d e t ra d u c c ió n a l Es p a ñ o l d e la d o c u m e n t a c ió n d e P o s t g re S QL RD BMS
h t t p : / / u s e rs . s e rvicio s . re t e ca l. e s / rs a n t o s / in d e x. h t m
8 2 7 2 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
p ro ye ct o d e t ra d u cció n a l e s p a ñ o l d e la d o cu m e n t a ció n d e Po s t g re s q l. S e a n im a a p a rt icip a r.
P á g in a o fic ia l d e l P o s t g re S QL
h t t p : / / www. p o s t g re s q l. o rg /
6 1 4 6 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
Pu e s e s o , la We b o ficia l d e e s t e s is t e m a d e b a s e s d e d a t o s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
o rie n t a d o s
a o b je t o
4 3 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re le n g u a je s o rie n t a d o s a o b je t o , co m o Ja va , C+ + o S m a llt a lk.
● C# ( 6 )
● C+ + ( 6 )
● Eiffe l ( 1 )
● Ja va ( 2 7 )
● S m a llt a lk ( 2 )
» EN ES TA P AGI N A
1 . Ge n e ra le s
Ge n e ra le s [ S u b ir]
1 d ire cció n
La p á g in a o rie n t a d a a o b je t o s
h t t p : / / www. ct v. e s / US ERS / p a g u llo /
1 9 4 9 2 vis it a s | Pu n t u a ció n : ( 4 5 vo t o s ) Vo t a
Pá g in a co n in fo rm a ció n d e d ive rs o s le n g u a je s o rie n t a d o s a o b je t o , co m o C+ + y Ja va . Co n t ie n e
e n la ce s y a rt ícu lo s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
o rie n t a d o s
a o b je t o .
C+ +
6 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re C+ +
» EN ES TA P AGI N A
1 . Lib re ría s
2 . Tu t o ria le s
3 . Ge n e ra le s
Tu t o ria le s [ S u b ir]
4 d ire ccio n e s
C + + c o n c la s e
h t t p : / / c. co n cla s e . n e t
1 0 1 1 0 vis it a s | Pu n t u a ció n : ( 2 6 vo t o s ) Vo t a
Exce le n t e y co m p le t o cu rs o d e C+ + , d is p o n ib le t a m b ié n e n PDF.
I n t ro d u c c ió n a la P ro g ra m a c ió n c o n C+ +
h t t p : / / www. g e o cit ie s . co m / in f1 3 5 / t u t c/ t u t c. h t m
6 0 9 1 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
Tu t o ria l d e C+ + e n e l q u e la t e o ría y la m e t o d o lo g ía t ie n e n b a s t a n t e p e s o . Mu y a d e cu a d o , p o r
t a n t o , p a ra p rin cip ia n t e s q u e n o s e p a n p ro g ra m a r n i e n C n i e n n in g u n a o t ra co s a .
Cu rs o d e C+ +
h t t p : / / www. za t o r. co m / Cp p /
2 1 3 7 2 vis it a s | Pu n t u a ció n : ( 2 3 vo t o s ) Vo t a
In t e re s a n t e cu rs o s o b re C+ + e n e l q u e s e h a ce u n re p a s o d e lo s p rin cip io s b á s ico s d e e s t e
le n g u a je d e p ro g ra m a ció n , s in e n t ra r e n lo s a s p e ct o s m á s co m p lica d o s d e l m is m o .
Ap re n d a C+ + c o m o s i e s t u v ie ra e n p rim e ro
h t t p : / / fca p ra . ce it . e s / Ayu d a In f/ Ap re n d a In f/ Cp p / m a n u a lcp p . p d f
6 1 4 1 2 vis it a s | Pu n t u a ció n : ( 8 6 vo t o s ) Vo t a
Co m p le t o cu rs o e n fo rm a t o PDF q u e t e a yu d a rá a a p re n d e r C+ + , a u n q u e p a ra s e g u irlo e s
re co m e n d a b le co n o ce r d e a n t e m a n o C y fu n d a m e n t o s d e p ro g ra m a ció n .
Ge n e ra le s [ S u b ir]
1 d ire cció n
El rin c o n d e Ch e m a n u e l
h t t p : / / www. g e o cit ie s . co m / jo s e m p a d ro n / e s p / in t ro d u ccio n . h t m
1 1 8 4 7 vis it a s | Pu n t u a ció n : ( 1 0 vo t o s ) Vo t a
Pa g in a s p e rs o n a le s d o n d e s e re co g e n g ra n ca n t id a d d e e n la ce s a s it io s d e d ica d o s a la
p ro g ra m a cio n p a ra Win d o ws u t iliza n d o C+ + .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
o rie n t a d o s
a o b je t o .
Ja v a
2 7 d ire ccio n e s
Ja va 2 S t a n d a rd Ed it io n - J2 S E, e s e l e n t o rn o d e d e s a rro llo d e a p lica cio n e s Ja va o rie n t a d o a la s
a p lica cio n e s s o lit a ria s y lo s Ap p le t s
● J2 ME ( 2 )
» EN ES TA P AGI N A
1 . En t o rn o s d e d e s a rro llo
2 . Ge n e ra le s
3 . Ja va Be a n s
4 . Re vis t a s
5 . Tu t o ria le s
En o t ro s id io m a s
● Bo rla n d Jb u ild e r
● Sun
● Fo rt e fo r Ja va
Ap p le W e b Ob je c t s 5 . 1
h t t p : / / www. a p p le . co m / e s / we b o b je ct s
3 0 7 6 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
In clu ye t a n t o u n e n t o rn o d e d e s a rro llo b a s a d o e n Ja va co m o u n s e rvid o r d e a p lica cio n e s p a ra la
we b . Es d e p a g o , e s o s í. Lo u t iliza n m á s d e 3 . 0 0 0 e m p re s a s co m o Ad o b e , Ap p le , BBC, Un iv.
Mich ig a n , e t c.
N e t Be a n s
h t t p : / / www. n e t b e a n s . o rg
2 6 4 9 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Un g ra n e n t o rn o d e d e s a rro llo p a ra Ja va , h e ch o e n Ja va y o p e n - s o u rce ( b a jo lice n cia S PL) . El Fo rt e
e s t á b a s a d o e n p a rt e e n é l.
Fo rt e fo r Ja v a
h t t p : / / www. s u n . co m / fo rt e / ffj/
3 9 1 7 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
En t o rn o d e d e s a rro llo p a ra Ja va d e s a rro lla d o p o r S u n e n Ja va . Es t á b a s a d o e n Ne t Be a n s . Exis t e n
d o s va ria n t e s : "Co m m u n it y Ed it io n " q u e e s g ra t u it a , e "In t e rn e t Ed it io n " q u e e s p a g a .
Bo rla n d Jb u ild e r
h t t p : / / www. b o rla n d . co m / jb u ild e r
1 0 4 6 2 vis it a s | Pu n t u a ció n : ( 2 5 vo t o s ) Vo t a
Pa ra m u ch o s la m e jo r h e rra m ie n t a RAD p a ra Ja va d e l m o m e n t o . Es u n a d e la s m á s p o t e n t e s , d e
u s o s e n cillo , co n s o p o rt e 1 0 0 % p u ro Ja va y co m p a t ib le co n la s ú lt im a s t e cn o lo g ía s y s o p o rt e p a ra
b a s e s d e d a t o s : CORBA, ODBC, JDBC, S QL, e t c. El e n t o rn o d e p ro g ra m a ció n e s s im ila r a l u t iliza d o
p o r De lp h i y Bo rla n d C+ + Bu ild e r, p o r lo cu a l lo s q u e h a ya n u t iliza d o e s o s p ro g ra m a s s e
a co n s t u m b ra ra n fá cilm e n t e a JBUild e r.
I BM Vis u a l Ag e fo r Ja v a
h t t p : / / www. s o ft wa re . ib m . co m / a d / va ja va /
8 0 6 3 vis it a s | Pu n t u a ció n : ( 2 3 vo t o s ) Vo t a
He rra m ie n t a RAD d e IBM, d is p o n ib le p a ra OS / 2 y Win d o ws , e s u n o d e lo s e n t o rn o s m á s vis u a le s e
in t u it ivo s .
Ka w a
h t t p : / / t e k- t o o ls / ka wa
1 9 8 4 0 vis it a s | Pu n t u a ció n : ( 1 8 vo t o s ) Vo t a
Ap lica ció n s h a re wa re Win 3 2 , e s u n e s t u p e n d o IDE, p o t e n t e y d e fá cil u s o . En t o rn o d e va ria s
ve n t a n a s , e n u n a d e e lla s m u e s t ra e n a rb o l lo s p a q u e t e s Ja va , s u cla s e s , m é t o d o s y va ria b le s
co rre s p o n d ie n t e s . Po s ib ilid a d d e e s t a b le ce r d ive rs o s m o d o s d e co m p ila ció n , s o p o rt e p a ra JDBC,
re s a lt e d e co lo r y m u ch a s co s a s m á s . Un a b u e n a y b a ra t a a lt e rn a t iva a lo s e n t o rn o s m á s
a va n za d o s .
Ge n e ra le s [ S u b ir]
8 d ire ccio n e s
ja v a His p a n o
h t t p : / / www. ja va h is p a n o . co m
1 3 3 9 1 vis it a s | Pu n t u a ció n : ( 1 0 vo t o s ) Vo t a
Pa g in a co n TODO lo re la cio n a d o co n Ja va . Tu t o ria le s , a rt ícu lo s , Fa q s , n o t icia s , e n la ce s . Y t o d o e n
ca s t e lla n o .
D is t rit o d e Ja v a e n Te le p o lis
h t t p : / / www. t e le p o lis . co m / cg i- b in / t 3 0 / !DIS TRITOS EC? d is t rit o = Ja va
1 0 2 7 8 vis it a s | Pu n t u a ció n : ( 1 1 vo t o s ) Vo t a
Dis t rit o d e Te le p o lis d e d ica d o a Ja va . Co n m a n u a le s , n o t icia s , e je m p lo s , cu rs o s y u n fo ro p a ra
p la n t e a r t u s d u d a s .
Ja v a e n BI T
h t t p : / / www. b it - n e t . o rg / ja va / d e fa u lt . h t m
6 8 4 8 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
In t e re s a n t e re co p ila ció n d e e n la ce s re la cio n a d o s co n Ja va Mu y in t e re s a n t e e l m in it u t o ria l
t o t a lm e n t e p rá ct ico q u e s o b re e s t e le n g u a je .
Ja v a e n la UN AM ( Un iv e rs id a d N a c io n a l Au t o n o m a d e Me x ic o )
h t t p : / / s u n s it e . u n a m . m x/ ja va . h t m
9 2 7 5 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
Co m p e n d io d e in fo rm a ció n s o b re Ja va . Art ícu lo s , d ire ccio n e s e t c.
Ca fe a u La it Ja v a
h t t p : / / m e t a la b . u n c. e d u / ja va fa q /
4 4 8 5 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
We b m a n t e n id a p o r Ellio t e Ru s t y Ha ro ld co n t u t o ria le s , cu rs o r, lib ro s , n o t icia s s o b re Ja va
a ct u a liza d a s d ia ria m e n t e , d e s crip ció n d e APIs , . . .
Ga m e la n
h t t p : / / www. g a m e la n . co m /
6 0 1 2 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
La p rin cip a l fu e n t e d e re cu rs o s p a ra Ja va . To d o e s t á o rd e n a d o e n u n a g ra n ca n t id a d d e
d ire ct o rio s , p a ra p o d e r e n co n t ra r fá cilm e n t e lo q u e s e b u s ca
JCe n t ra l
h t t p : / / www. ib m . co m / d e ve lo p e r/ ja va /
4 3 0 9 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
S it io ce n t ra l d e Ja va im p u ls a d o p o r IBM, d o n d e s e p u e d e n e n co n t ra r n o t icia s , co n s e jo s p a ra
d e s a rro lla d o re s , in fo rm a ció n s o b re a p lica cio n e s y n u e va s h e rra m ie n t a s , e t c
Sun
h t t p : / / ja va . s u n . co m /
5 8 0 2 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
La We b d e lo s cre a d o re s d e l Ja va .
Ja v a Be a n s [ S u b ir]
1 d ire cció n
Ja v a Be a n s ( Ja v a S o ft )
h t t p : / / ja va . s u n . co m / b e a n s
6 3 1 5 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
De s d e e s t a p á g in a p o d ré is a cce d e r a t o d o t ip o d e m a t e ria l s o b re Ja va Be a n s , p ro p o rcio n a d o
g ra t u it a m e n t e p o r S u n : API's , d o cu m e n t a ció n , t u t o ria le s , ú lt im a s t e cn o lo g ia s re la cio n a d a s y
h e rra m ie n t a s e n s u s ú lt im a s ve rs io n e s . De vis it a o b lig a d a .
Re v is t a s [ S u b ir]
1 d ire cció n
Ja v a W o rld
h t t p : / / www. ja va wo rld . co m /
6 6 2 5 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
Re vis t a e le ct ró n ica p u b lica d a p o r IDG d e d ica d a a Ja va . Co n t ie n e a rt ícu lo s d e m u y b u e n a ca lid a d ,
u n a s e cció n e n o rm e s o b re p ro g ra m a s d is p o n ib le s p a ra Ja va , re vis ió n d e lib ro s , . . .
Tu t o ria le s [ S u b ir]
9 d ire ccio n e s
Jin i - S is t e m a s d is t rib u id o s e n Ja v a
h t t p : / / cib e ria . ya . co m / p xa i/ file z/ jin i. zip
3 8 7 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Jin i ( Jin i Is No t In it ia ls ) e s u n a t e cn o lo g ia d e S u n Micro s ys t e m s p a ra e l d e s a rro llo d e s is t e m a s
d is t rib u id o s fo rm a d o s p o r t o d o t ip o d e d is p o s it ivo s q u e co n t e n g a n la m a q u in a virt u a l Ja va . Es t e e s
u n d o cu m e n t o q u e re p a s a lo s p rin cip io s fu n d a m e n t a le s d e lo s s is t e m a s d is t rib u id o s y d e s crib e la
t e cn o lo g ia co n e je m p lo s . En ca s t e lla n o
S t ru t s - I m p le m e n t a c io n d e l p a t ro n MVC e n W e b
h t t p : / / cib e ria . ya . co m / p xa i/ file z/ s t ru t s . zip
3 1 2 9 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
S t ru t s e s u n a p la t a fo rm a q u e p e rm it e d e s a rro lla r a p lica cio n e s we b e n Ja va b a s a n d o n o s e n e l
p a t ró n d e d is e ñ o Mo d e l- Vie w- Co n t ro lle r. En e s t e Do cu m e n t o s e d e s crib e e s e p a t ró n y s e d a n
a lg u n o s e je m p lo s d e S t ru t s .
I n t ro d u c c ió n a iP la n e t Ap p lic a t io n S e rv e r
h t t p : / / ja va . p ro g ra m a cio n . n e t / ip in t ro /
3 3 8 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Tra d u cció n a l ca s t e lla n o d e l m a n u a l d e in t ro d u cció n a l iPla n e t Ap p lica t io n S e rve r.
h t t p :/ / ja v a . p ro g ra m a c io n . n e t / b e a in t ro /
h t t p : / / ja va . p ro g ra m a cio n . n e t / b e a in t ro /
6 4 7 7 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Prim e ro d e u n a s e rie d e t u t o ria le s d e d ica d o s a lo s S e rvid o re s d e Ap lica cio n e s e s p e cia lm e n t e
e n fo ca d o s a Ja va co m o We b Lo g ic d e BEA. A p a rt ir d e e s t a s e rie a p re n d e re m o s co m o p u b lica r
n u e s t ra s a p lica cio n e s Ja va e n lo s s e rvid o re s m á s im p o rt a n t e s .
Tu t o ria l d e Co c o o n
h t t p : / / ja va . p ro g ra m a cio n . n e t / co co o n /
6 8 4 8 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
Co co o n e s u n s is t e m a d e p u b lica ció n e le ct ró n ico b a s a d o e n XML/ XS L o rie n t a d o a d o cu m e n t o s . Es
1 0 0 % Ja va y e s t á b a s a d o e n e s t á n d a re s . Ad e m á s e s p ro b a b le m e n t e e l fra m e wo rk d e e s t e t ip o
m á s m a d u ro y re co n o cid o . En e s t e t u t o ria l s e e xp lica co m o fu n cio n a y co m o p o d e m o s u t iliza rlo s
p a ra d e s a rro lla r a p lica cio n e s We b q u e p re s e n t e n la in fo rm a ció n e n HTML, PDF, WML, e t c.
I n t ro d u c c ió n a JS P
h t t p : / / www. ve re xt re m a d u ra . co m / m ig u e l/ js p
7 6 6 1 vis it a s | Pu n t u a ció n : ( 1 4 vo t o s ) Vo t a
Bre ve in t ro d u cció n a la p ro g ra m a ció n e n in t e rn e t co n JS P y s e rvle t s .
P e q u e ñ o t u t o r d e Ja v a
h t t p : / / u s u a rio s . t rip o d . e s / Ozit o / in d e x. h t m l
2 1 3 7 0 vis it a s | Pu n t u a ció n : ( 3 6 vo t o s ) Vo t a
Pe q u e ñ o t u t o r d e Ja va e n la q u e s e e s t u d ia n d e fo rm a m u y d id a ct ica y co m p re n s ib le d ife re n t e s
a s p e ct o s d e e s t e le n g u a je : s win g , t ra b a jo e n re d , fich e ro Ja r, m é t o d o s n a t ivo s , e t c. .
Tu t o ria l d e Ja v a d e Ag u s t in Fro u fe
h t t p : / / m e m b e rs . e s . t rip o d . d e / fro u fe /
1 5 1 5 1 vis it a s | Pu n t u a ció n : ( 1 3 vo t o s ) Vo t a
Es t u p e n d o t u t o ria l d e s o b re Ja va 1 . 2 d e Ag u s t in Fro u fe .
Th in k in g in Ja v a
h t t p : / / www. e cke lo b je ct s . co m / TIJ2 / in d e x. h t m l
1 3 4 4 0 vis it a s | Pu n t u a ció n : ( 1 4 vo t o s ) Vo t a
Un lib ro e xce le n t e ( ¡Mu ch o s a firm a n q u e e l m e jo r!) a ce rca d e Ja va . El m is m o s e p u e d e d e s ca rg a r
e n fo rm a t o t a lm e n t e g ra t u it a .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
En t o rn o s d e
d e s a rro llo
3 3 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re d is t in t o s e n t o rn o s d e p ro g ra m a ció n , h e rra m ie n t a s d e d e s a rro llo
rá p id o d e a p lica cio n e s ( RAD) , e t c. .
● . NET ( 2 )
● C+ + Bu ild e r ( 1 )
● De lp h i ( 1 5 )
● Ot ro s ( 1 )
● Po we r Bu ild e r ( 2 )
● Ve lá zq u e z Vis u a l ( 1 )
● Vis u a l Ba s ic ( 1 0 )
● Vis u a l C+ + ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
En t o rn o s d e
d e s a rro llo .
D e lp h i
1 5 d ire ccio n e s
De lp h i e s e l e n t o rn o d e d e s a rro llo d e Bo rla n d p a ra la p ro g ra m a ció n b a jo Win d o ws 9 5 / 9 8 / NT, b a s a d o
e n u n a va ria ció n d e l le n g u a je Pa s ca l lla m a d a Ob je ct Pa s ca l q u e co n vie rt e e s t e le n g u a je e n u n o
o rie n t a d o a o b je t o s . La m a yo ría d e e s t a s d ire ccio n e s s o n ig u a lm e n t e vá lid a s p a ra s u h e rra m ie n t a
h e rm a n a , C+ + Bu ild e r.
» EN ES TA P AGI N A
1 . Re p o s it o rio s d e co m p o n e n t e s
2 . Cu rs o s
3 . Ge n e ra le s
4 . Fo ro s
En o t ro s id io m a s
● To rry's De lp h i Pa g e s
Re p o s it o rio s d e c o m p o n e n t e s [ S u b ir]
4 d ire ccio n e s
D e lp h i Fre e S t u ff
h t t p : / / www. d e lp h ifre e s t u ff. co m
8 6 8 4 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Es t a e s la p á g in a p e rs o n a l d e Bra d S t o we rs , u n o d e lo s m e jo re s p ro g ra m a d o re s d e d ica d o s a la
p ro g ra m a ció n d e co m p o n e n t e s g ra t u it o s p a ra De lp h i. Co n t ie n e s u s co m p o n e n t e s , lo s d e a lg u n o s
co la b o ra d o re s y a lg u n o s p ro g ra m a s g ra t u it o s cre a d o s p o r e llo s .
D e lp h i S u p e r P a g e
h t t p : / / d e lp h i. icm . e d u . p l
8 3 3 1 vis it a s | Pu n t u a ció n : ( 1 3 vo t o s ) Vo t a
In fin it o s co m p o n e n t e s g ra t u it o s y s h a re wa re , m u ch o s d e e llo s co n có d ig o fu e n t e . Ad e m á s la we b
e s t á p e rfe ct a m e n t e e s t ru ct u ra d a d e m o d o q u e p u e d a s e n co n t ra r fá cilm e n t e lo q u e n e ce s it a s y
cu e n t a co n d ive rs o s m irro rs q u e a ce le ra n e l p ro ce s o d e b u s ca r y b a ja rs e co m p o n e n t e s .
Jo rd a n Ru s s e ll's S o ft w a re P a g e
h t t p : / / www. jo rd a n r. d h s . o rg /
4 5 3 2 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Pá g in a d e l p ro g ra m a d o r Jo rd a n Ru s s e ll, d o n d e e n co n t ra ré is s u fa m o s o co m p o n e n t e , To o lb a r'9 7 y
s o b re t o d o , e l p ro g ra m a g ra t u it o p a ra re a liza r in s t a la cio n e s In n o S e t u p .
To rry 's D e lp h i P a g e s
h t t p : / / www. t o rry. ru
4 8 7 1 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Alm a cé n d e co m p o n e n t e s , n o t a n e xt e n s o co m o De lp h i S u p e r Pa g e p e ro ig u a lm e n t e b ie n
cla s ifica d o . A ve ce s e s b u e n o m ira r a q u í p a ra e n co n t ra r lo m e jo r d e u n d e t e rm in a d o t ip o d e
co m p o n e n t e .
Cu rs o s [ S u b ir]
5 d ire ccio n e s
Cu rs o d e D e lp h i d e TS P w e b
h t t p : / / o rb it a . s t a rm e d ia . co m / ~ t s p we b / p ro g ra m a cio n . h t m
2 3 0 6 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Un a p e q u e ñ a in t ro d u cció n a De lp h i, e n fo rm a t o Wo rd . Es crit o p a ra De lp h i 3 , p u e d e q u e e n a lg u n a s
co s a s s e h a ya q u e d a d o o b s o le t o .
P o n g a u n a d ll ( I S AP I ) e n s u v id a .
h t t p : / / www. d t p la n . co m / g a rcia - cu e rvo / De lp h i. h t m
2 1 3 4 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Un p e q u e ñ o t u t o ria l q u e e xp lica p a s o a p a s o co m o re a liza r e xt e n s io n e s we b co n De lp h i 5 .
Eje rc ic io s Re s u e lt o s e n D e lp h i
h t t p : / / www. t e rra . e s / p e rs o n a l/ re s fe r/ d e lp h i
1 2 8 0 3 vis it a s | Pu n t u a ció n : ( 2 0 vo t o s ) Vo t a
Má s d e 4 0 e je rcicio s re s u e lt o s co m e n za n d o d e s d e ce ro y p a s a n d o p o r t a b la s d e l t ip o DBF, a s í
co m o b a s e s d e d a t o s d e Acce s s .
Cu rs illo d e D e lp h i
h t t p : / / www. a rra kis . e s / ~ e b 1 ft s / p rim e ra . h t m
1 1 8 4 3 vis it a s | Pu n t u a ció n : ( 1 2 vo t o s ) Vo t a
Cu rs o p a ra in icia rs e e n e s t o d e la p ro g ra m a ció n e n De lp h i.
Cu rs o d e Cre a c ió n d e Co m p o n e n t e s e n D e lp h i
h t t p : / / p e rs o n a l. re d e s t b . e s / re vu e lt a ro ch e / ccin d . h t m
6 9 4 0 vis it a s | Pu n t u a ció n : ( 1 4 vo t o s ) Vo t a
Ma g n ífico cu rs o q u e a m p lía la in fo rm a ció n q u e s e d a e n la m a yo r p a rt e d e la s we b y lib ro s s o b re la
cre a ció n d e co m p o n e n t e s .
Ge n e ra le s [ S u b ir]
5 d ire ccio n e s
D e lp h i He a v e n
h t t p : / / www. d e lp h ih e a ve n . co m
6 5 6 5 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
In t e re s a n t e p u n t o d e p a rt id a p a ra p ro g ra m a d o re s e n De lp h i. Cu rs o s s o b re De lp h i y Pa s ca l,
a rt ícu lo s , có d ig o fu e n t e , co m p o n e n t e s , e n la ce s e in clu s o u n a re vis t a p ro p ia .
Bo rla n d Es p a ñ a
h t t p : / / www. b o rla n d . e s
4 8 9 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Pá g in a e n e s p a ñ o l d e Bo rla n d , a lg o m á s va cía p e ro e n n u e s t ro id io m a .
Clu b D e lp h i
h t t p : / / www. clu b d e lp h i. co m
8 5 3 0 vis it a s | Pu n t u a ció n : ( 3 2 vo t o s ) Vo t a
Es t e e s e l p u n t o d e e n cu e n t ro d e lo s p ro g ra m a d o re s d e De lp h i e n ca s t e lla n o . Tru co s , e n la ce s ,
co m p o n e n t e s , . . .
Bo rla n d
h t t p : / / www. b o rla n d . co m
3 8 5 5 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Pá g in a d e Bo rla n d ( o In p ris e ) , cre a d o ra d e De lp h i y s u h e rm a n o C+ + Bu ild e r.
P ro je c t JED I
h t t p : / / www. d e lp h i- je d i. o rg
4 5 1 2 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Ho g a r d e d ive rs o s p ro ye ct o s e n t re lo s q u e d e s t a ca n la co n ve rs ió n d e d ive rs o s APIs e xis t e n t e s e n
Win d o ws p a ra p o d e r s e r u t iliza d o s e n De lp h i, co m o Dire ct X y Op e n GL.
Fo ro s [ S u b ir]
1 d ire cció n
Fo ro d e D e lp h i e n c a s t e lla n o
h t t p : / / e s . g ro u p s . ya h o o . co m / g ro u p / De lp h iGro u p
1 9 6 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Gru p o d e d is cu s ió n d e De lp h i e n ca s t e lla n o ( a cce s ib le p o r we b o e m a il) p a ra la a yu d a m u t u a y e l
in t e rca m b io d e in fo rm a ció n e n t re la co m u n id a d p ro g ra m a d o ra q u e u t iliza e s t e e n t o rn o , s e a cu a l
s e a s u n ive l.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
En t o rn o s d e
d e s a rro llo .
Vis u a l Ba s ic
1 0 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re Vis u a l Ba s ic
» EN ES TA P AGI N A
1 . Art ícu lo s
2 . Tu t o ria le s
3 . Có d ig o
4 . Ge n e ra le s
Art íc u lo s [ S u b ir]
1 d ire cció n
VB - w e b d e p ro g ra m a c ió n
h t t p : / / www. t e rra . e s / p e rs o n a l/ jrca b re ra
1 3 7 8 1 vis it a s | Pu n t u a ció n : ( 1 6 vo t o s ) Vo t a
Art ícu lo s p rin cip a lm e n t e ce n t ra d o s e n a p lica cio n e s d is t rib u id a s ( DNA) e n VB. . . MTS , COM, COM+ ,
t ru co s , e n la ce s . . . Pa ra lo s q u e ya d o m in a n e l Vis u a l Ba s ic.
Tu t o ria le s [ S u b ir]
2 d ire ccio n e s
I s la P ro g ra m a c ió n
h t t p : / / www. is la p ro g ra m a cio n . co m
9 5 7 7 vis it a s | Pu n t u a ció n : ( 8 1 vo t o s ) Vo t a
Dis p o n e d e u n cu rs o p a ra in icia rs e e n Vis u a l Ba s ic, d e s d e va ria b le s y o p e ra d o re s h a s t a a cce s o a
b a s e s d e d a t o s . Ad e m á s d is p o n e d e fo ro d e co n s u lt a y e n la ce s a o t ra s p á g in a s .
Ap re n d a Vis u a l Ba s ic 6 . 0
h t t p : / / fca p ra . ce it . e s / Ayu d a In f/ Ap re n d a In f/ Vis u a lBa s ic6 / vb a s ic6 0 . p d f
8 3 3 6 6 vis it a s | Pu n t u a ció n : ( 1 0 8 vo t o s ) Vo t a
Cu rs o d e Vis u a l Ba s ic 6 . 0 e n fo rm a t o PDF d e s d e la Es cu e la S u p e rio r d e In g e n ie ro s In d u s t ria le s d e
S a n S e b a s t iá n ( Un ive rs id a d d e Na va rra ) .
Có d ig o [ S u b ir]
2 d ire ccio n e s
Co d ig o fu e n t e
h t t p : / / www. t e rra . e s / p e rs o n a l2 / s fo rt iz/
5 3 5 6 vis it a s | Pu n t u a ció n : ( 1 1 vo t o s ) Vo t a
Alg u n o s e je m p lo s co n có d ig o fu e n t e e n VB, re la cio n a d o s p rin cip a le m e n t e co n b a s e d e d a t o s .
Có d ig o Fu e n t e d e Vis u a l Ba s ic
h t t p : / / it . in t e rn a t io n s . n e t / co d ig o vb
1 1 0 2 6 vis it a s | Pu n t u a ció n : ( 1 7 vo t o s ) Vo t a
Ru t in a s , e je m p lo s y co d ig o fu e n t e d e Vis u a l Ba s ic.
Ge n e ra le s [ S u b ir]
5 d ire ccio n e s
Ca n a l Vis u a l Ba s ic
h t t p : / / www. ca n a lvis u a lb a s ic. n e t /
8 1 6 6 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
Un a b u e n a we b co n cu rs o s , n o s ó lo d e Vis u a l Ba s ic, s in o t a m b ié n d e m e t o d o lo g ía , S QL S e rve r,
S QL, p ro g ra m a ció n o rie n t a d a a o b je t o s , e t c. . Tie n e t a m b ié n fo ro , e je m p lo s co n có d ig o fu e n t e y
t ru co s .
La p á g in a d e l Vis u a l Ba s ic ( e l Gu ille )
h t t p : / / g u ille . co s t a s o l. n e t /
3 6 9 9 9 vis it a s | Pu n t u a ció n : ( 1 3 0 vo t o s ) Vo t a
La w e b d e Os c a r Gro s s o
h t t p : / / www. g e o cit ie s . co m / vb g ro s s o /
1 4 0 3 8 vis it a s | Pu n t u a ció n : ( 1 1 vo t o s ) Vo t a
Pe q u e ñ a we b co n a lg u n o s t ru co s y d ive rs o s co n t ro le s OCX s a ca d o s d e In t e rn e t .
Vis u a l Ba s ic 6
h t t p : / / www. vis u a lb 6 . co m /
3 7 4 4 6 vis it a s | Pu n t u a ció n : ( 2 5 vo t o s ) Vo t a
In t e re s a n t e we b a rg e n t in a , co n m u lt it u d d e a rt ícu lo s d is e ñ a d o s p a ra re s o lve r d u d a s fre cu e n t e s .
Vis u a l Ba s ic Ex p e rt o
h t t p : / / www. e id o s . e s / Ve XPERT/
3 2 4 0 6 vis it a s | Pu n t u a ció n : ( 5 4 vo t o s ) Vo t a
We b co n g ra n ca n t id a d d e a rt ícu lo s re la cio n a d a s co n Vis u a l Ba s ic, o rg a n iza d o s e n d ife re n t e s
a p a rt a d o s : Ba s e s d e d a t o s , Ge n e ra le s , Co m p o n e n t e s , Ma t e m á t ica s e In g e n ie ria , e t c. Ma n t e n id a
p o r Ha rve y Tria n a .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
d e s c rip t
4 2 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re d is t in t o s le n g u a je s d e s crip t , o le n g u a je s d e m a cro .
● Ja va s crip t ( 2 7 )
● Pe rl ( 1 0 )
● Pyt h o n ( 5 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
d e s c rip t .
P e rl
1 0 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s co n d o cu m e n t a cio n ( t u t o ria le s , a rt ícu lo s , e je m p lo s , e t c. . ) s o b re Pe rl, e l
le n g u a je d e s crip t p a ra Un ix m á s p o p u la r.
» EN ES TA P AGI N A
1 . Arch ivo s
2 . Ge n e ra le s
3 . Tu t o ria le s
Arc h iv o s [ S u b ir]
1 d ire cció n
Co m p re h e n s iv e P e rl Arc h iv e N e t w o rk ( CP AN )
h t t p : / / www. cp a n . o rg
4 4 0 1 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
In m e n s o a rch ivo ( 7 8 6 Mb e n e s t o s m o m e n t o s ) , co n in fo rm a ció n , h e rra m ie n t a s , lib re ría s , e t c. .
Ge n e ra le s [ S u b ir]
5 d ire ccio n e s
I n d ic e P ERL
h t t p : / / lm s a iza rro b a . t rip o d . co m / In d ice PERL. h t m l
8 1 7 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Pe q u e ñ a p á g in a d o n d e s e in d ica d o n d e co n s e g u ir PERL y s e d a n a lg u n o s e je m p lo s d e u s o .
Ce n t ro d e Re c u rs o s P e rl
h t t p : / / in fo rm a t ica . kip e lh o u s e . co m / p e rl. h t m l
3 5 4 8 vis it a s | Pu n t u a ció n : ( 2 0 vo t o s ) Vo t a
Es s ó lo u n a p á g in a ( lit e ra lm e n t e ) p e ro lle n a d e in fo rm a ció n . In clu ye a p u n t e s , cu rs o s , m a n u a le s ,
b o ls a d e e m p le o , y u n t a b ló n d e p re g u n t a s y re s p u e s t a s .
Có d ig o P e rl
h t t p : / / www. t re s . co m / p e rl/
6 9 8 8 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
Ace p t a b le p u n t o d e p a rt id a p a ra a q u e llo s q u e d e s e e n u t iliza r Pe rl p a ra e l d e s a rro llo d e CGIs .
P e rl Ch ile
h t t p : / / www. p e rl. cl
6 6 4 8 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Exce le n t e p á g in a s o b re Pe rl, co n n o t icia s , a rt ícu lo s y u n p e q u e ñ o y t u t o ria l d e e s t e le n g u a je .
P á g in a o fic ia l d e P e rl
h t t p : / / www. p e rl. co m / p u b
4 7 6 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Ap a rt e d e p o d e r o b t e n e r la s ú lt im a s ve rs io n e s d e e s t e le n g u a je , co n t ie n e la fa m o s a 'Pe rl
Re fe re n ce ', d o n d e p o d rá s o b t e n e r t o d a cla s e d e re cu rs o s re la cio n a d o s co n Pe rl.
Tu t o ria le s [ S u b ir]
4 d ire ccio n e s
P e rl 5 . 0 : Un le n g u a je m u lt iu s o
h t t p : / / www. ie s p a n a . e s / p e rl- e s
4 3 0 2 vis it a s | Pu n t u a ció n : ( 1 3 vo t o s ) Vo t a
Co m p le t o t u t o ria l q u e in clu ye t e m a s co m o a cce s o a BBDD, CGI, XML, y p ro g ra m a ció n o rie n t a d a a
o b je t o s . S in e m b a rg o , p ro fu n d iza p o co e n ca d a t e m a , re s u lt a n d o b a s t a n t e a rd u a e n o ca s io n e s la
co m p re n s ió n d e lo s t e m a s .
Tu t o ria l d e D BI
h t t p : / / g e n e u ra . u g r. e s / ~ ja vi/ d b i/ in d e x. h t m
5 1 6 1 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
I n t ro d u c c ió n a l le n g u a je P e rl
h t t p : / / www. u co . e s / ~ i2 2 o s ca v/ t u t o r. h t m l
8 6 4 3 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
An t ig u o t u t o ria l co n t e n id o e n u n a s o la p á g in a . Es t á , p u e s e s o , u n p o co a n t ig u o , y p e q u e ñ o .
Tu t o ria l d e P e rl
h t t p : / / www. g ra n a ve n id a . co m / p e rl/
1 1 0 6 1 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
At ra ct ivo t u t o ria l m u y in d ica d o p a ra in icia rs e e n e l e s t u d io d e Pe rl, ya q u e a b a rca d e s d e e l p ro ce s o
d e in s t a la ció n h a s t a e l u s o d e t u b e ría s y e xp re s io n e s re g u la re s . Dis p o n e d e u n a ve rs ió n
co m p rim id a p a ra lle va rs e lo a ca s a .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
d e s c rip t .
Ja v a s c rip t
2 7 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s co n d o cu m e n t a cio n ( t u t o ria le s , a rt ícu lo s , e je m p lo s , e t c. . ) s o b re
Ja va s crip t y JS crip t .
» EN ES TA P AGI N A
1 . Dire ccio n e s d e ca ra ct e r g e n e ra l
2 . Ru t in a s y e je m p lo s e n Ja va s crip t
3 . Es p e cifica cio n e s y re fe re n cia s
4 . Tu t o ria le s
5 . Art icu lo s
En o t ro s id io m a s
● Ma n u a l d e re fe re n cia d e Ne t s ca p e
● Do c Ja va s crip t
D ire c c io n e s d e c a ra c t e r g e n e ra l [ S u b ir]
3 d ire ccio n e s
/ * El c ó d ig o * /
h t t p : / / www. e lco d ig o . n e t /
2 0 8 1 2 vis it a s | Pu n t u a ció n : ( 2 2 vo t o s ) Vo t a
We b d e d ica d a p rin cip a lm e n t e a a lb e rg a r t u t o ria le s y t ru co s p a ra Ja va s crip t , a u n q u e p o s e e t a m b ié n
u n a s e cció n p a ra a yu d a r a lo s u s u a rio s d e Ne t s ca p e . Un p o co va cía a ú n , p e ro p ro m e t e .
D o c Ja v a s c rip t
h t t p : / / www. we b re fe re n ce . co m / d o cjs
1 1 6 2 1 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
El m e jo r lu g a r p a ra e l e xp e rt o , p u e s p o n e a t u d is p o s ició n a rt ícu lo s d e p e rio d icid a d q u in ce n a l y u n
t ru co n u e vo ca d a d ía ( p e q u e ñ it o , e s o s í) . Un a s p á g in a s q u e q u e rría s g u a rd a r e n t e ra s e n t u d is co
d u ro .
W e b m o n k e y p ro g ra m m in g : Ja v a s c rip t
h t t p : / / www. h o t wire d . co m / we b m o n ke y/ p ro g ra m m in g / ja va s crip t /
7 4 3 1 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Dis p o n e d e u n p a r d e e xce le n t e s t u t o ria le s y d e u n g ra n re p o s it o rio d e ru t in a s e n Ja va s crip t .
Ru t in a s y e je m p lo s e n Ja v a s c rip t [ S u b ir]
9 d ire ccio n e s
m a p b Dh tm l
h t t p : / / p e rs o . wa n a d o o . e s / m a p in t a n e l/ m a p b d h t m l/ e s / in d e x. h t m l
1 1 0 7 0 vis it a s | Pu n t u a ció n : ( 1 9 vo t o s ) Vo t a
Pá g in a co n s crip t s , q u e p o r a h o ra s ó lo in co rp o ra u n m e n ú d e s p le g a b le co n s o p o rt e p a ra m ú lt ip le s
m e n ú s p o r p á g in a , p ro fu n d id a d va ria b le y s u u t iliza ció n co n fra m e s .
Ga m a ro d Ja v a S c rip t
h t t p : / / www. g a m a ro d . co m . a r
2 0 6 6 5 vis it a s | Pu n t u a ció n : ( 4 3 vo t o s ) Vo t a
Re cu rs o s p a ra We b Ma s t e rs , e s t e s it io co n t ie n e m á s d e 5 0 Ru t in a s Ja va s crip t , e n ca s t e lla n o y
Gra t u it a s , lis t a s p a ra u s a r e n t u we b . Ad e m á s in clu ye n e je m p lo s y e xp lica cio n e s p a ra s u co rre ct o
u s o . Id e a l p a ra la s p e rs o n a s q u e re cie n s e in icia n e n e l d is e ñ o d e p á g in a s we b .
Ja v a S c rip t t o t h e Bo n e !
h t t p : / / js b o n e . fa d la n . co m
9 5 8 8 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
Eje m p lo s p rá ct ico s ( p u b lica d o s e n la - e xt in t a - re vis t a Ne t m a n i@)
S c rip t o n a rio d e v ia - m o d e m . c o m
h t t p : / / www. via - m o d e m . co m / s crip t io n a rio /
1 2 9 5 9 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Ta lle r W e b
h t t p : / / h t m l. p ro g ra m a cio n . n e t / t we b . p h p
1 4 0 8 6 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
Nu e s t ro t a lle r we b , p e s e a in clu ir a rt ícu lo s d e o t ro s t e m a s , e s t á e n fo ca d o p rin cip a lm e n t e a a p o rt a r
ru t in a s y e je m p lo s p rá ct ico s e n Ja va s crip t .
Eje m p lo s d e Ja v a S c rip t
h t t p : / / www. js - e xa m p le s . co m / js /
4 1 3 4 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Un b u e n n ú m e ro d e s crip t s . S in e m b a rg o , n o re s u lt a d e m a s ia d o có m o d a , p u e s t o q u e la s
ca t e g o ría s n o e s t á s n m u y b ie n e s co g id a s .
ja v a s c rip t s . c o m
h t t p : / / www. ja va s crip t s . co m
1 0 6 8 3 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
Un e n o rm e re p o s it o rio d e t ru co s y p e q u e ñ o s p ro g ra m a s e n Ja va s crip t . A p e s a r d e e s t a r b ie n
e s t ru ct u ra d o , s u m a yo r p ro b le m a e s p re cis a m e n t e s u t a m a ñ o : lo n o rm a l e s q u e e n cu e n t re s
d e m a s ia d o s s crip t s ig u a le s y e n o ca s io n e s lo q u e n e ce s it a s re s u lt a d ifícil d e h a lla r.
Es p e c ific a c io n e s y re fe re n c ia s [ S u b ir]
5 d ire ccio n e s
D OM d e Mic ro s o ft I n t e rn e t Ex p lo re r
h t t p : / / m s d n . m icro s o ft . co m / wo rks h o p / a u t h o r/ o m / d o c_ o b je ct . a s p
4 7 3 4 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
En e s t a we b e s t á la g u ía d e l DOM ( Do cu m e n t Ob je ct Mo d e l) d e l Exp lo re r d e Micro s o ft .
De s a fo rt u n a d a m e n t e n o d is p o n e d e o p ció n p a ra b a ja rt e lo .
Ma n u a l d e re fe re n c ia d e Mic ro s o ft
h t t p : / / m s d n . m icro s o ft . co m / s crip t in g / d e fa u lt . h t m
5 0 4 2 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
En e s t a we b e n co n t ra rá s e l Ma n u a l d e re fe re n cia d e la ve rs ió n 5 . 0 d e JS crip t , e l n o m b re q u e
re cib e e l Ja va s crip t u t iliza d o e n lo s p ro d u ct o s d e Micro s o ft . La m e n t a b le m e n t e s ó lo fija s u a t e n ció n
e n e l le n g u a je b a s e ( co m ú n a a m b o s n a ve g a d o re s ) y s e o lvid a d e l DOM, o m o d e lo d e o b je t o s d e l
d o cu m e n t o . Te lo p u e d e s b a ja r e n fo rm a t o CHM.
Ma n u a l d e re fe re n c ia d e N e t s c a p e
h t t p : / / d e ve lo p e r. n e t s ca p e . co m / d o cs / m a n u a ls / js / clie n t / js g u id e / in d e x. h t m
6 2 4 9 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Ma n u a l d e re fe re n cia d e la ve rs ió n 1 . 3 d e l Ja va s crip t u t iliza d o p o r lo s n a ve g a d o re s d e Ne t s ca p e .
S e p u e d e b a ja r e n fo rm a t o ZIP y PDF y re s u lt a m u y co m p le t o e in s t ru ct ivo . S u s ú n ico s p ro b le m a s
s o n e s t a r e n in g lé s y h a b la r s ó lo d e lo s n a ve g a d o re s d e Ne t s ca p e .
Tu t o ria le s [ S u b ir]
7 d ire ccio n e s
Tu t o ria l Ja v a S c rip t
h t t p : / / www. ie s p a n a . e s / cn la s ro za s / t u t js / in d e x. h t m l
2 1 1 2 9 vis it a s | Pu n t u a ció n : ( 1 9 vo t o s ) Vo t a
Tu t o ria l d e Ja va S crip t q u e e m p ie za d e s d e ce ro y t e rm in a e n la cre a ció n a va n za d a d e o b je t o s .
Re co m e n d a d o a p rin cip ia n t e s y a lo s q u e q u ie ra n m e jo ra r s u s t é cn ica s .
Cu rs o d e Ja v a s c rip t 1 . 2
h t t p : / / h t m l. p ro g ra m a cio n . n e t / js / t it js . h t m l
1 9 5 8 2 vis it a s | Pu n t u a ció n : ( 1 7 vo t o s ) Vo t a
In t ro d u cció n a l Ja va s crip t q u e , a u n q u e e s crit a e n p rin cip io p a ra s e r u t iliza d a p o r u s u a rio s d e
Ne t s ca p e , h a s id o a d a p t a d a p a ra fu n cio n a r co n Exp lo re r.
I n t ro d u c c ió n a Ja v a s c rip t , d e S t e p h a n Ko c h
h t t p : / / 2 0 0 . 2 5 . 9 . 3 / e n la ce s / ja va s crip t / in d e x. h t m l
1 0 6 4 9 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Tra d u cció n d e l q u e p o s ib le m e n t e s e a e l m a n u a l clá s ico d e Ja va s crip t m á s fa m o s o e n In t e rn e t .
Mu ch o s a p re n d im o s co n la ve rs ió n e n in g lé s d e e s t e t u t o ria l, cu yo p rin cip a l p ro b le m a e s h a b e rs e
q u e d a d o a lg o a n t icu a d o .
Ja v a s c rip t fo r t h e t o t a l n o n - p ro g ra m m e r
h t t p : / / www. we b t e a ch e r. co m / ja va t o u r/ fra m e h o l. h t m
4 5 7 1 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Ig n o ro s i lo s q u e n o s e p a n p ro g ra m a r s a ca rá n t a n t o p ro ve ch o d e e s t e cu rs o co m o a u g u ra s u
n o m b re , p e ro s í q u e e s u n a b u e n a in t ro d u cció n a Ja va s crip t .
Th e Ja v a s c rip t P rim e rs
h t t p : / / www. h t m lg o o d ie s . co m / p rim e rs / js p
6 7 8 3 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
Un m a n u a l q u e p e rm it e a p re n d e r Ja va s crip t e n 3 0 le ccio n e s . Mu y b ie n e s t ru ct u ra d o , e xp o n e ca d a
co n ce p t o co n u n e je m p lo y u n e je rcicio p a ra q u e e l le ct o r a s ie n t e s u s co n o cim ie n t o s .
Vo o d o o 's I n t ro t o Ja v a s c rip t , d e S t e p h a n Ko c h
h t t p : / / ru m m e lp la t z. u n i- m a n n h e im . d e / ~ s ko ch / js / t u t o ria l. h t m
1 0 2 3 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
El clá s ico s e a ct u a liza , a u n q u e s ó lo e n in g lé s . Lle g a a t ra t a r t e m a s d e HTML d in á m ico e n u n
le n g u a je co n cis o y co n cre t o . Te lo p u e d e s b a ja r e n HTML, PS y PDF.
Art ic u lo s [ S u b ir]
3 d ire ccio n e s
Art íc u lo e n Ma e s t ro s d e l W e b s o b re I n t e rn e t Ex p lo re r 5
h t t p : / / q u ik. g u a t e . co m / cvd h s / we b m a s t e rs / ie 5 . s h t m l
4 3 6 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
In t e re s a n t e a rt ícu lo s o b re la s e xt e n s io n e s re a liza d a s a l m o d e lo d e DHTML d e Exp lo re r e n s u
ve rs ió n 5 .
Art íc u lo d e D a n n y Go o d m a n s o b re e l s o p o rt e d e l W 3 C D OM e n lo s n a v e g a d o re s d e q u in t a
g e n e ra c ió n .
h t t p : / / d e ve lo p e r. ip la n e t . co m / vie ws o u rce / g o o d m a n _ cro s s / g o o d m a n _ cro s s . h t m
4 9 9 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Au n q u e a t a ñ a p rin cip a lm e n t e a l DHTML, e l Do cu m e n t Ob je ct Mo d e l va a va ria r la m a n e ra e n q u e
a cce d e m o s a la s p ro p ie d a d e s d e l d o cu m e n t o d e s d e Ja va s crip t , a s í q u e co n vie n e e s t a r p re p a ra d o s
p a ra e l m is m o . Es t e a rt ícu lo e s u n a b u e n a in t ro d u cció n .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
● De m o s ( 9 )
● Ju e g o s ( 1 0 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ju e g o s
1 0 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re p ro g ra m a ció n d e vid e o ju e g o s .
» EN ES TA P AGI N A
1 . Cu rs o s
2 . Ge n e ra le s
3 . Re vis t a s
Cu rs o s [ S u b ir]
2 d ire ccio n e s
CP V ( Cu rs o d e P ro g ra m a c ió n d e Vid e o ju e g o s )
h t t p : / / www. a rra kis . e s / ~ p p rie g o / s o ft p a co / win cp v. h t m
1 1 7 0 9 vis it a s | Pu n t u a ció n : ( 1 6 vo t o s ) Vo t a
To d o u n clá s ico d e n t ro d e Fid o n e t , e s t e cu rs o o fre cía u n a e xce le n t e in t ro d u cció n a l m u n d o d e la
p ro g ra m a ció n d e vid e o ju e g o s b a jo MS - DOS . Au n q u e a n t ig u o , d e s t a ca s u in co n t e s t a b le ca lid a d y la
in clu s ió n d e l có d ig o fu e n t e d e cu a t ro ju e g o s co m p le t o s . Ah o ra e s t á d is p o n ib le co m p le t o ( e ra
s h a re wa re ) p e ro la p á g in a o ficia l p a re ce h a b e r d e s a p a re cid o .
Cu rs o d e D I V Ga m e s S t u d io
h t t p : / / www. a re a in t . co m / Cu rs o _ Div. h t m
7 9 8 9 vis it a s | Pu n t u a ció n : ( 1 5 vo t o s ) Vo t a
Cu rs o s o b re e l e n t o rn o d e p ro g ra m a ció n d e vid e o ju e g o s DIV Ga m e s S t u d io , q u e p e rm it e la
cre a ció n d e lo s m is m o s d e u n a m a n e ra m á s rá p id a y s e n cilla , s i b ie n e s cie rt o q u e n o re s u lt a ú t il
p a ra p ro g ra m a r p ro fe s io n a lm e n t e .
Ge n e ra le s [ S u b ir]
7 d ire ccio n e s
W a t e rS h ip D re a m s
h t t p : / / ws d 2 0 0 2 . ie s p a n a . e s / ws d 2 0 0 2 / in d e x3 . h t m
1 7 6 1 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
We b co n t ru co s y re cu rs o s d e s t in a d a , p rin cip a lm e n t e , a l d e s a rro llo d e ju e g o s e n DIV2 , a u n q u e
t a m b ié n in clu ye re cu rs o s p a ra e n t o rn o s co m o De lp h i o Da rk Ba s ic.
Art e b in a rio
h t t p : / / a rt e b in a rio . cjb . n e t
2 2 4 8 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Pá g in a e s t á o rie n t a d a a la s p e rs o n a s q u e p ro g ra m a n vid e o ju e g o s e n m ú lt ip le s p la t a fo rm a s .
In clu ye u n cu rs o d e p ro g ra m a ció n d e vid e o ju e g o s e n Alle g ro y C+ + .
D X La b
h t t p : / / www. g e o cit ie s . co m / d xla b /
4 5 2 0 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
Re cu rs o s y có d ig o fu e n t e s o b re p ro g ra m a ció n d e Dire ct X 8 b a jo De lp h i.
RE g e n ia l. c o m : D e s a rro lla d o re s
h t t p : / / www. re g e n ia l. co m / g a m e p ro g ra m m in g /
6 0 4 0 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Pe q u e ñ a we b d e d ica d a p rin cip a lm e n t e a lo s e n g in e 3 D d e lo s ju e g o s , co n p e q u e ñ o s a rt ícu lo s q u e
e xp lica n lo s p rim e ro s p a s o s e n Dire ct X y Op e n GL.
Ga m e p ro g ra m m in g a n d g ra p h ic s p ro g ra m m in g
h t t p : / / g a m e p ro g ra m m e r. co m /
3 8 3 8 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
We b co n a rt ícu lo s s o b re p ro g ra m a ció n g rá fica y d e vid e o ju e g o s . De s g ra cia d a m e n t e , s o n p o co s lo s
a rt ícu lo s y a d e m á s a lg o a n t ig u o s .
Th e Ga m e P ro g ra m m in g Me g a s it e
h t t p : / / www. p e rp le xe d . co m / GPMe g a / in d e x. h t m
8 7 7 3 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Fa b u lo s a we b co n a rt ícu lo s s o b re p ro g ra m a ció n d e vid e o ju e g o s , ú t ile s , n u m e ro s o s , y
p e rfe ct a m e n t e o rd e n a d o s . Ta m b ié n d e s d e a q u í p u e d e s b a ja rt e e l có d ig o fu e n t e d e ju e g o s
co m p le t o s y d e d ive rs a s lib re ría s . Fa lla u n p o co e n e l t e m a d e l s o n id o , p e ro t o d o lo d e m á s ra lla la
p e rfe cció n .
X2 FTP
ft p : / / x2 ft p . o u lu . fi/ p u b / m s d o s / p ro g ra m m in g /
4 2 8 7 1 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Es t e s it io d e ft p p o n e a n u e s t ra d is p o s ició n in co n t a b le s re cu rs o s p a ra p ro g ra m a r ju e g o s b a jo MS -
DOS , s ie n d o la e le cció n d e s is t e m a o p e ra t ivo lo p e o r q u e t ie n e .
Re v is t a s [ S u b ir]
1 d ire cció n
Ga m a s u t ra
h t t p : / / www. g a m a s u t ra . co m
5 5 1 9 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
Pu b lica ció n s o b re p ro g ra m a ció n d e vid e o ju e g o s . Es crib e n m u ch o s p ro g ra m a d o re s d e l, d ig a m o s ,
'm u n d o re a l' y s e a ct u a liza ca d a s e m a n a .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
De m o s
9 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re p ro g ra m a ció n d e d e m o s , p re s e n t a cio n e s g rá fica s y s o n o ra s d e
g ra n e s p e ct a cu la rid a d g e n e ra d a s e n t ie m p o re a l.
● En s a m b la d o r@ ( 6 )
» EN ES TA P AGI N A
1 . Art ícu lo s
2 . Cu rs o s
3 . Ge n e ra le s
4 . Pu b lica cio n e s
En o t ro s id io m a s
● Ho rn e t
● Hu g i
Art íc u lo s [ S u b ir]
4 d ire ccio n e s
Efe c t o s g rá fic o s y o t ro s a rt íc u lo s d e P C- Ma n ía
h t t p : / / www. h o b b yp re s s . co m / PCMANIA/ PC0 4 4 / DE/ p c0 4 4 d e d e m o s 0 0 0 0 . h t m l
7 8 2 6 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
S e p u e d e a cce d e r d e s d e In t e rn e t a t o d o s lo s a rt ícu lo s p u b lica d o s e n la re vis t a PC- Ma n ía s o b re la
p ro g ra m a ció n d e d e m o s y e s crit o s p o r Miq u e l Ba rce ló y Ed u a rd S á n ch e z Pa la zó n . S o n m u ch o s ,
p e rfe ct a m e n t e e xp lica d o s y co n có d ig o d e e je m p lo , p e ro d e s a fo rt u n a d a m e n t e n o e xis t e n u n ín d ice
q u e p e rm it a a cce d e r a t o d o s e llo s , p o r lo q u e d e b e re m o s ir p u ls a n d o a lo s e n la ce s d e 'S ig u ie n t e '
p a ra le e rlo s t o d o s .
P á g in a d e N u ll
h t t p : / / p a g in a . d e / n u ll
3 4 8 7 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Aw e s o m e Fire Tu t
h t t p : / / b a cklit . d ig it is . n e t / a we s o m e . h t m
1 2 1 9 5 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Bu e n a rt ícu lo q u e e xp lica có m o re a liza r e l e fe ct o d e l fu e g o , u s a d o ya e n m u ch a s d e m o s , p e ro q u e
p u e d e s e rvir p a ra in t ro d u cirs e e n lo s m é t o d o s u s a d o s e n e l m u n d illo .
W it c h lo rd
h t t p : / / www. wit ch lo rd . co m
4 8 0 6 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
En e s t e lu g a r p o d rá s e n co n t ra r d ive rs o s a rt ícu lo s q u e t e g u ia rá n e n la p ro d u cció n d e e fe ct o s
u t iliza n d o Vis u a l C+ + y la s Dire ct X. Exce le n t e p a ra d a r t u s p rim e ro s p a s o s e n e s t o s t e m a s .
Ta m b ié n co n t ie n e u n a e xce le n t e re co p ila ció n d e a rt ícu lo s d e o t ra s we b .
Cu rs o s [ S u b ir]
2 d ire ccio n e s
D e m o n o m ic ro n
h t t p : / / www. e n co m ix. e s / ~ ch is p a /
3 5 4 5 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
In t e re s a n t ís im a in icia t iva d e la e s ce n a e s p a ñ o la p o r e n s e ñ a r la s b a s e s q u e d e b e t e n e r t o d o b u e n
p ro g ra m a d o r d e d e m o s o 'co d e r'. De s a fo rt u n a d a m e n t e , p a re ce n o h a b e r t e n id o co n t in u id a d .
Ab e 's D e m o s c h o o l
h t t p : / / www. m d s . m d h . s e / fö re n in g a r/ s m a ll/ a b e /
3 8 1 1 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Pe q u e ñ a in t ro d u cció n a l m u n d illo q u e , d e s a fo rt u n a d a m e n t e , s e h a q u e d a d o d e m a s ia d o a n t ig u a .
Ge n e ra le s [ S u b ir]
2 d ire ccio n e s
Fa q s y s
h t t p : / / www. n e u t ra lzo n e . o rg / h o m e / fa q s ys
6 6 5 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Exce le n t e we b co n a rt ícu lo s y t u t o ria le s , g e n e ra lm e n t e e n fo rm a t o t e xt o y co n có d ig o d e e je m p lo .
Ho rn e t
h t t p : / / www. h o rn e t . o rg / co d e
3 9 4 1 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
P u b lic a c io n e s [ S u b ir]
1 d ire cció n
Hu g i
h t t p : / / www. h u g i. d e
3 4 4 0 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Re vis t a e le ct ró n ica p a ra PCs , q u e e n ca d a n ú m e ro t ie n e u n a im p o rt a n t e re m e s a d e a rt ícu lo s s o b re
p ro g ra m a ció n d e d e m o s , e n t re o t ra s m u ch a s co s a s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ot ro s
le n g u a je s
1 1 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s le n g u a je s n o in clu id o s e n o t ra s ca t e g o ría s , co m o p u e d e n s e r lo s
le n g u a je s d e cla ra t ivo s o lo s fu n cio n a le s . El p rin cip a l in t e ré s d e m u ch o s d e e llo s e s s o b re t o d o
a ca d é m ico .
● Ha s ke ll ( 3 )
● J (1)
● Pro lo g ( 7 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ot ro s
le n g u a je s .
P ro lo g
7 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re Pro lo g , e l m á s p o p u la r d e lo s le n g u a je s d e cla ra t ivo s . Es t o s
le n g u a je s s e ca ra ct e riza n p o rq u e e n e llo s s e le in d ica a l o rd e n a d o r q u é e s lo q u e s e q u ie re q u e
h a g a , p e ro n o có m o s e q u ie re q u e lo h a g a . S in e m b a rg o , y p o r a h o ra , s u u s o e s t á re s t rin g id o s o b re
t o d o a u n ive rs id a d e s .
» EN ES TA P AGI N A
1 . Co m p ila d o re s
2 . Ge n e ra le s
3 . Tu t o ria le s
Co m p ila d o re s [ S u b ir]
4 d ire ccio n e s
Vis u a l P ro lo g
h t t p : / / www. e - za p a c8 7 . f2 s . co m
1 2 3 7 2 vis it a s | Pu n t u a ció n : ( 1 1 vo t o s ) Vo t a
En t o rn o d e d e s a rro llo co m p le t o , co n IDE, d e p u ra d o r, e t c. , p a ra Pro lo g . Dis p o n ib le e n e n t o rn o
Win d o ws , Un ix y OS / 2 .
CI AO P ro lo g
h t t p : / / clip . d ia . fi. u p m . e s / S o ft wa re / Cia o /
5 9 9 9 vis it a s | Pu n t u a ció n : ( 1 4 vo t o s ) Vo t a
Po t e n t e co m p ila d o r GNU, q u e in t e rp re t a e l e s t á n d a r IS O d e Pro lo g y d is p o n e d e u n a ca n t id a d
in g e n t e d e lib re ría s y u n a h e rra m ie n t a p a ra la g e n e ra ció n a u t o m á t ica d e d o cu m e n t a ció n .
S ic s t u s P ro lo g
h t t p : / / www. s ics . s e / is l/ s ics t u s . h t m l
3 9 0 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
El m á s co m p le t o co m p ila d o r d e Pro lo g , in co rp o ra a ñ a d id o s h a b it u a le s e n co m p ila d o re s d e o t ro s
le n g u a je s p e ro h a b it u a lm e n t e a u s e n t e s cu a n d o h a b la m o s d e Pro lo g . Ta m b ié n d is p o n e d e a l
p o s ib ilid a d d e e n la za r có d ig o e n e s t e le n g u a je d e n t ro d e p ro g ra m a s e s crit o s e n o t ro s le n g u a je s
co m o , p o r e je m p lo , Vis u a l Ba s ic. Es o s í, e s d e p a g o .
S W I P ro lo g
h t t p : / / s wi. p s y. u va . n l/ p ro je ct s / S WI- Pro lo g /
5 1 6 4 vis it a s | Pu n t u a ció n : ( 1 5 vo t o s ) Vo t a
Pe q u e ñ a , co m p le t a y ú t il im p le m e n t a ció n d e l Pro lo g d e la Un ive rs id a d d e Ed in m b u rg o .
Prin cip a lm e n t e re a liza d a co n fin e s a ca d é m ico s , s e d is t rib u ye b a jo lice n cia GPL.
Ge n e ra le s [ S u b ir]
1 d ire cció n
P ro g ra m a c ió n Ló g ic a
h t t p : / / clip . d ia . fi. u p m . e s / p ro g lo g /
5 7 9 6 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
In t e re s a n t e p á g in a co n u n cu rs o co m p le t o s o b re Pro g ra m a ció n Ló g ica d e la Fa cu lt a d d e
In fo rm á t ica d e Ma d rid e n t ra n s p a re n cia s , a ve ce s n o m u y b ie n e xp lica d a s , a p a rt e d e e n la ce s a u n
p a r d e in t é rp re t e s g ra t u it o s . Es t ris t e q u e e n u n a u n ive rs id a d e s p a ñ o la s ó lo t e n g a n e s t a s p á g in a s
e n in g lé s , p e ro a l m e n o s e s d e lo m e jo rcit o q u e h e m o s e n co n t ra d o .
Tu t o ria le s [ S u b ir]
2 d ire ccio n e s
Tu t o ria l d e P ro lo g e n Ca s t e lla n o
h t t p : / / www. p ro g ra m a cio n . n e t / cu rs o s / p ro lo g 1 /
1 4 8 6 8 vis it a s | Pu n t u a ció n : ( 2 0 vo t o s ) Vo t a
Es t e t u t o ria l p re t e n d e s e r u n a g u ía b á s ica d e in t ro d u cció n a l le n g u a je d e p ro g ra m a ció n Pro lo g . S e
e n g lo b a d e n t ro d e u n a s e rie d e cu rs o s q u e p re t e n d e p ro fu n d iza r e n la m a t e ria a m e d id a q u e s e
a d q u ie re d o m in io d e d ich o le n g u a je .
Tu t o ria l d e P ro lo g
h t t p : / / p ro t o n . u ct in g . u d g . m x/ t u t o ria l/ p ro lo g / in d e x. h t m
1 1 8 4 3 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
Tu t o ria l d e u n a s o la p á g in a ( e s o s i, m u y g ra n d e ) , q u e p a re ce in s is t ir m á s e n e l m a n e jo d e l
in t é rp re t e d e la Un ive rs id a d d e Ed in b u rg o q u e e n la co m p re n s ió n d e l le n g u a je . Aco n s e ja b le p a ra
lo s q u e ya h a ya n p a s a d o d e a h í.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ot ro s
le n g u a je s .
Ha s k e ll
3 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re Ha s ke ll, e l m á s m o d e rn o e s t á n d a r e n t re lo s le n g u a je s fu n cio n a le s .
Es t o s le n g u a je s s e ca ra ct e riza n p o r t e n e r co m o u n id a d ló g ica d e p ro ce s a m ie n t o la fu n ció n , e n lu g a r
d e la s e n t e n cia co m o s u ce d e e n lo s le n g u a je s im p e ra t ivo s u o rie n t a d o s a o b je t o s .
» EN ES TA P AGI N A
1 . Ge n e ra le s
2 . Tu t o ria le s
Ge n e ra le s [ S u b ir]
1 d ire cció n
Th e Ha s k e ll Ho m e P a g e
h t t p : / / www. h a s ke ll. o rg
3 7 3 2 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
El p u n t o d e p a rt id a d e t o d o p ro g ra m a d o r d e Ha s ke ll. In clu ye e n la ce s , t u t o ria le s , co m p ila d o re s ,
e t c.
Tu t o ria le s [ S u b ir]
2 d ire ccio n e s
Cu rs o d e Ha s k e ll d e Je ro e n Fo k k e r
h t t p : / / www. cs . u u . n l/ p e o p le / je ro e n / co u rs e s / fp - s p . p d f
1 0 0 4 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Cu rs o e m p le a d o e n la s cla s e s d e la Un ive rs id a d d e Ut re ch t . Aú n cu a n d o s e re fie ra a Go fe r, e n
re a lid a d e l le n g u a je e s Ha s ke ll, q u e p o r lo vis t o t ie n e h a s t a a p o d o s . Es m u y s e n cillo y e s t á m u y
b ie n t ra d u cid o .
I n t ro d u c c ió n a Ha s k e ll
h t t p : / / h o rru . ls i. u n io vi. e s / ~ la b ra / FTP/ In t Ha s ke ll9 8 . p d f
7 7 9 8 vis it a s | Pu n t u a ció n : ( 1 2 vo t o s ) Vo t a
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
● Co m p ila d o re s ( 6 )
● De s a rro llo we b ( 3 7 )
● Ed it o re s ( 1 )
● Lo t u s No t e s & Do m in o ( 7 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ed it o re s
1 d ire cció n
Re co p ila ció n d e s it io s q u e a lb e rg a n e d it o re s o a p á g in a s d e co m p a ñ ia s d e d ica d a s a la co n s t ru ccio n
d e lo s m is m o s .
» EN ES TA P AGI N A
1 . Gra t u it o s
Gra t u it o s [ S u b ir]
1 d ire cció n
Gra s p
h t t p : / / www. e n g . a u b u rn . e d u / g ra s p /
8 2 2 1 vis it a s | Pu n t u a ció n : ( 1 7 vo t o s ) Vo t a
Ed it o r m u lt ile n g u a je cu ya m a yo r o rig in a lid a d co n s is t e e n la g e n e ra ció n d e CS D ( Co n t ro l S t ru ct u re
Dia g ra m ) ; u n o s g rá fico s s it u a d o s a la izq u ie rd a d e l có d ig o q u e a yu d a n a co m p re n d e r rá p id a m e n t e
s u e s t ru ct u ra . Ed it a a rch ivo s ADA, C, C+ + , Ja va y VHDL y e s m u lt ip la t a fo rm a .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Co m p ila d o re s
6 d ire ccio n e s
Re co p ila ció n d e s it io s q u e a lb e rg a n co m p ila d o re s o a p á g in a s d e co m p a ñ ia s d e d ica d a s a la
co n s t ru ccio n d e lo s m is m o s .
» EN ES TA P AGI N A
1 . Gra t u it o s
Gra t u it o s [ S u b ir]
6 d ire ccio n e s
CI AO P ro lo g
h t t p : / / clip . d ia . fi. u p m . e s / S o ft wa re / Cia o /
5 9 9 9 vis it a s | Pu n t u a ció n : ( 1 4 vo t o s ) Vo t a
Po t e n t e co m p ila d o r GNU, q u e in t e rp re t a e l e s t á n d a r IS O d e Pro lo g y d is p o n e d e u n a ca n t id a d
in g e n t e d e lib re ría s y u n a h e rra m ie n t a p a ra la g e n e ra ció n a u t o m á t ica d e d o cu m e n t a ció n .
Co m p ila d o r GN AT
h t t p : / / www. g n a t . co m
4 9 7 3 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Co m p ila d o r GNU d e ADA, d is p o n ib le p a ra d ive rs a s p la t a fo rm a s y d is t rib u id o a lo la rg o y a n ch o d e
In t e rn e t e n m ile s d e s it io s FTP.
D JGP P
h t t p : / / www. d e lo rie . co m / d jg p p /
9 7 9 5 vis it a s | Pu n t u a ció n : ( 1 5 vo t o s ) Vo t a
La p á g in a d e l fa m o s o co m p ila d o r d e C p a ra DOS / Win d o ws . Es u n a ve rs ió n d e l GNU C p re s e n t e e n
m u ch o s Un ix p a ra e s t o s s is t e m a s o p e ra t ivo s .
Fre e p a s c a l
h t t p : / / www. fre e p a s ca l. o rg /
8 4 0 8 vis it a s | Pu n t u a ció n : ( 2 2 vo t o s ) Vo t a
Ha rb o u r P ro je c t
h t t p : / / www. win fa kt . co m / h a rb o u r- p ro je ct /
5 6 6 9 vis it a s | Pu n t u a ció n : ( 1 3 vo t o s ) Vo t a
En e s t a s p á g in a s e n co n t ra re is u n co m p ila d o r d e xBa s e ( Clip p e r) fre e wa re t o d a vía a lg o in m a d u ro .
S W I P ro lo g
h t t p : / / s wi. p s y. u va . n l/ p ro je ct s / S WI- Pro lo g /
5 1 6 4 vis it a s | Pu n t u a ció n : ( 1 5 vo t o s ) Vo t a
Pe q u e ñ a , co m p le t a y ú t il im p le m e n t a ció n d e l Pro lo g d e la Un ive rs id a d d e Ed in m b u rg o .
Prin cip a lm e n t e re a liza d a co n fin e s a ca d é m ico s , s e d is t rib u ye b a jo lice n cia GPL.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
S is t e m a s
o p e ra t iv o s
2 5 d ire ccio n e s
Re co p ila ció n d e s it io s q u e a lb e rg a n in fo rm a ció n p a ra p ro g ra m a r b a jo u n s is t e m a o p e ra t ivo
e s p e cífico .
● AS / 4 0 0 ( 3 )
● Lin u x ( 1 4 )
● OS / 2 ( 1 )
● Pa lm OS ( 1 )
● Win d o ws NT ( 5 )
» EN ES TA P AGI N A
1 . Cu rs o s
Cu rs o s [ S u b ir]
1 d ire cció n
S is t e m a s Op e ra t iv o s
h t t p : / / e xa . u n n e . e d u . a r/ d e p a r/ a re a s / in fo rm a t ica / S is t e m a s Op e ra t ivo s / S OF. h t m
2 0 5 3 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Co m p le t o lib ro o n lin e cu yo s co n t e n id o s co rre s p o n d e n a u n cu rs o u n ive rs it a rio d e S is t e m a s
Op e ra t ivo s Co n ve n cio n a le s y Dis t rib u id o s . S e p u e d e d e s ca rg a r e l cu rs o e n PDF. La p á g in a
p rin cip a l, n o o b s t a n t e , e s t á s o b re ca rg a d a a la e xt e n u a ció n .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
S is t e m a s
o p e ra t iv o s .
W in d o w s N T
5 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re Win d o ws NT/ 2 0 0 0 .
» EN ES TA P AGI N A
1 . Cu rs o s
2 . Ge n e ra le s
3 . Re vis t a s
Cu rs o s [ S u b ir]
2 d ire ccio n e s
Ay u d a s y g u ía s p a ra W in d o w s N T
h t t p : / / www. win - n t . co m . a r
3 9 6 4 vis it a s | Pu n t u a ció n : ( 1 2 vo t o s ) Vo t a
Ma n u a le s y t ru co s s o b re Win d o ws NT S e rve r, b a s t a n t e co m p le t o s .
P o rt a l Ce rt ific a c ió n MCS E e n e s p a ñ o l
h t t p : / / www. ce rt ifica cio n m cs e . co m
8 6 6 3 vis it a s | Pu n t u a ció n : ( 1 4 vo t o s ) Vo t a
Prim e r p o rt a l e n e s p a ñ o l d e d ica d o a la s ce rt ifica cio n e s Cis co y Micro s o ft p a ra e l m u n d o
h is p a n o p a rla n t e . t e s t s , fo ro s d e d e b a t e s , ra n kin g s , e xá m e n e s , t ru co s , e n la ce s im p re s cin d ib le s ,
e t c. . .
Ge n e ra le s [ S u b ir]
2 d ire ccio n e s
I n t ra n e t c o n W in d o w s N T
h t t p : / / www. g lo b a ln e t . co m . m x/ in t ra n e t /
8 3 0 6 vis it a s | Pu n t u a ció n : ( 1 3 vo t o s ) Vo t a
Im p le m e n t a ció n d e u n a In t ra n e t p a ra e l t ra b a jo e n g ru p o s o b re Win d o ws NT. Po r Jo s é Go n zá le z
Mo re n o
W in d o w s N T Re s o u rc e S it e
h t t p : / / www. in t e rla cke n . co m / win n t / d e fa u lt . h t m
5 2 2 4 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
En In g lé s . Ut ilid a d e s p a ra la a d m in is t ra ció n d e s is t e m a s y s it e s NT. Tru co s p a ra la Ad m in is t ra ció n
d e NT, h e rra m ie n t a s p a ra lo s s e rvid o re s We b NT, e t c. As í co m o re co m e n d a cio n e s d e lib ro s .
Re v is t a s [ S u b ir]
1 d ire cció n
W in d o w s N T Ma g a z in e
h t t p : / / www. wn t m a g . co m /
6 6 1 8 vis it a s | Pu n t u a ció n : ( 8 vo t o s ) Vo t a
Pa g in a We b e s t a co n o cid a re vis t a s o b re e l s is t e m a o p e ra t ivo Win d o w NT.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
S is t e m a s
o p e ra t iv o s .
Lin u x
1 4 d ire ccio n e s
Re co p ila ció n d e in fo rm a ció n s o b re Lin u x
» EN ES TA P AGI N A
1 . Dis t rib u cio n e s
2 . Ge n e ra le s
3 . No t icia s
4 . Re vis t a s
D is t rib u c io n e s [ S u b ir]
3 d ire ccio n e s
D e b ia n / GN U Lin u x
h t t p : / / www. e s . d e b ia n . o rg /
5 4 2 4 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
In fo rm a ció n e n ca s t e lla n o s o b re e s t a d is t rib u ció n d e Lin u x.
ES w a re
h t t p : / / www. e s wa re . co m /
4 2 3 7 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Dis t rib u ció n e s p a ñ o la . Co n la lín e a d e co m a n d o s ca s t e lla n iza d a , p á g in a s m a n e n ca s t e lla n o , y
s o p o rt e t é cn ico .
Eu rie le c
h t t p : / / www. e t s it . u p m . e s / ~ e u rie le c/ lin u x/
3 7 9 1 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Dis t rib u ció n e s p a ñ o la . Ba s a d a e n la d is t rib u ció n d e Re d Ha t .
Ge n e ra le s [ S u b ir]
8 d ire ccio n e s
I N S FLUG
h t t p : / / www. in s flu g . o rg /
6 6 8 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
S it e d o n d e s e co o rd in a la t ra d u cció n "o ficia l" d e d o cu m e n t o s b re ve s , co m o lo s COMOs ( HOW- TOs )
y PUFs o Pre g u n t a s d e Us o Fre cu e n t e , la s FAQs e n in g lé s .
Lin u x S t a rt
h t t p : / / e s . lin u xs t a rt . co m / ca t e g o ry. p h p ? file = / d e ve lo p m e n t /
7 8 1 6 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Un p o rt a l d e Lin u x m u y b á s ico , cu yo m a yo r in t e ré s re s id e e n s u b u s ca d o r y, p o r s u p u e s t o , s u
ca t e g o ría d e d e s a rro llo .
His p a lin u x
h t t p : / / www. h is p a lin u x. e s /
4 8 1 2 vis it a s | Pu n t u a ció n : ( 6 vo t o s ) Vo t a
As o cia ció n d e u s u a rio s d e Lin u x e n e s p a ñ o l.
Lin u x d e N o v a t o a N o v a t o
h t t p : / / p e rs o n a l2 . re d e s t b . e s / t ra q u e /
1 0 5 2 7 vis it a s | Pu n t u a ció n : ( 1 2 vo t o s ) Vo t a
We b s o b re Lin u x d irig id a e s e n cia lm e n t e a lo s q u e e m p ie za n co n e s t e m a g n ifico s is t e m a o p e ra t ivo .
Ma n t e n id a p o r Fe rn a n d o Tra ve s e d o .
Lin u x Bu s c a
h t t p : / / www. lin u xb u s ca . la n e t s . n e t /
1 1 2 8 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Prim e r d ire ct o rio e n e s p a ñ o l co n m o t o r d e b ú s q u e d a s o b re re cu rs o s Lin u x.
Zo n a Lin u x
h t t p : / / www. zo n a lin u x. co m /
7 5 8 1 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Zo n a Lin u x. co m , p á g in a we b co n t o d o t ip o d e re cu rs o s d e Lin u x. No t icia s d ia ria s , d o cu m e n t a ció n ,
b o le t ín m e n s u a l, fo ro s d e d is cu s ió n , e t c. Ma n t e n id a p o r Da vid Liza n o .
Lin u x W e b Rin g
h t t p : / / lin u xwe b rin g . o rg /
2 9 4 1 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
An illo s o b re d e p á g in a s s o b re Lin u x e n In g le s .
N o t ic ia s [ S u b ir]
2 d ire ccio n e s
Lin u x P re v ie w
h t t p : / / lin u x. n cc. o rg . ve /
7 2 8 6 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Pá g in a we b co n n o t icia s , 're vie ws ', y e n la ce s .
S o lo Lin u x
h t t p : / / www. s o lo lin u x. co m /
5 3 9 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
No t icia s s o b re Lin u x e n ca s t e lla n o . Es t a s e cció n p e rt e n e ce a No t ica s . co m , n o t icia s in t e rco m .
Re v is t a s [ S u b ir]
1 d ire cció n
Lin u x Fo c u s e n c a s t e lla n o
h t t p : / / www. lin u xfo cu s . o rg / Ca s t e lla n o /
5 5 6 1 vis it a s | Pu n t u a ció n : ( 1 0 vo t o s ) Vo t a
Es u n a re vis t a in t e rn a cio n a l y lib re s o b re lin u x. Es u n a o rg a n iza ció n s in á n im o d e lu cro , y la re vis t a
e s lle va d a p o r vo lu n t a rio s d e t o d a s p a rt e s d e l m u n d o .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
I n t e rn e t
1 6 4 d ire ccio n e s
Re co p ila ció n d e s it io s q u e a lb e rg a n in fo rm a ció n p a ra p ro g ra m a r e n In t e rn e t .
● AS P ( 1 2 )
● CGI ( 1 )
● Co ld Fu s io n ( 4 )
● CS S ( 2 )
● Fla s h ( 8 )
● Ge n e ra le s ( 6 )
● HTML ( 1 0 )
● PHP ( 2 1 )
● S VG y VML ( 1 1 )
● WAP ( 3 0 )
● XHTML ( 1 )
● XML ( 3 0 )
● XS L, XS LT y Xp a t h ( 2 8 )
● Ja va @ ( 2 7 )
● Ja va s crip t @ ( 2 7 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
I n t e rn e t .
HTML
1 0 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re HTML y re cu rs o s a la h o ra d e re a liza r p á g in a s we b . Pa ra
p ro fu n d iza r m á s e n e s t e t e m a , re co m e n d a m o s vis it a r HTML e n ca s t e lla n o .
● De s a rro llo we b @ ( 3 7 )
» EN ES TA P AGI N A
1 . Cu rs o s
2 . Es p e cifica cio n e s
3 . Ge n e ra le s
4 . Lis t a s d e co rre o
Cu rs o s [ S u b ir]
6 d ire ccio n e s
Cu rs o d e HTML d e Au la Fá c il
h t t p : / / www. a u la fa cil. o rg / Cu rs o Ht m l/ t e m a rio . h t m
1 8 7 4 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Un cu rs o a lg o co rt o y b a s t a n t e p a rco . Es t á d ivid id o e n le ccio n e s m u y p e q u e ñ a s .
Cu rs o Vis u a l d e HTML
W e b Ma e s t ro
h t t p : / / www. a m e rica n . e d u . co / vs / cu rs o we b / d o cs / p o rt a d a . h t m l
6 4 9 4 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Co p ia d e l cu rs o , ya d e s a p a re cid o , d e Fra n cis co Aro ce n a , p o s ib le m e n t e e l m á s ce le b re d e In t e rn e t
e n n u e s t ro id io m a .
Tu t o r HTML
h t t p : / / g ia s 7 2 0 . d is . u lp g c. e s / Gia s / Cu rs o s / Tu t o ria l_ h t m l/ in d ice . h t m
4 6 5 6 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
Un b u e n cu rs o d e HTML, b a s t a n t e co m p le t o .
Es p e c ific a c io n e s [ S u b ir]
2 d ire ccio n e s
HTML 3 . 2
h t t p : / / d n s . u n co r. e d u / in fo / h t m l/ re c- s p . h t m
1 5 3 6 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Ya s e h a q u e d a d o u n p o co a n t ig u a p e ro re s u lt a a lg o m á s p e q u e ñ a y m a n e ja b le q u e la 4 . 0 .
HTML 4 . 0 1
h t t p : / / h t m l. co n cla s e . n e t / w3 c/ h t m l4 0 1 - e s / co ve r. h t m l
6 1 5 6 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Es p e cifica ció n e n e s p a ñ o l d e la ú lt im a re vis ió n d e l HTML, la 4 . 0 1 . Co n vie n e t e n e rla a m a n o p a ra
re s o lve r d u d a s .
Ge n e ra le s [ S u b ir]
1 d ire cció n
Te je d o re s d e l w e b
h t t p : / / www. t e je d o re s d e lwe b . co m /
2 9 0 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Un o d e lo s m á s a n t ig u o s y ve n e ra b le s s it io s d e d ica d o s a e n s e ñ a r HTML y t e m a s a fin e s . S e
a ct u a liza co n fre cu e n cia co n t o d o t ip o d e cu rs o s .
W e b - ES
h t t p : / / www. re d iris . e s / lis t / in fo / we b - e s . e s . h t m l
1 4 6 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
La lis t a e s p a ñ o la co n m á s s o le ra , o fre cid a p o r Re d IRIS .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
I n t e rn e t .
XML
3 0 d ire ccio n e s
En e s t a s p á g in a s e n co n t ra ré is t o d o t ip o d e d o cu m e n t a ció n s o b re XML t a n t o e n in g le s co m o e n
ca s t e lla n o . Pa ra p ro fu n d iza r m á s e n e s t e t e m a , re co m e n d a m o s vis it a r HTML e n ca s t e lla n o .
» EN ES TA P AGI N A
1 . Art ícu lo s g e n e ra le s
2 . Es p e cifica cio n e s
3 . FAQs
4 . WEBs d e in fo rm a ció n g e n e ra l s o b re XML
5 . Lis t a s d e co rre o y n e ws
6 . Tu t o ria le s
En o t ro s id io m a s
● XMLHa ck
● Ca fe co n Le ch e
● XML- DEV
● We b s o b re S GML/ XML d e Ro b in Co ve r
● XMLINFO
Art íc u lo s g e n e ra le s [ S u b ir]
7 d ire ccio n e s
XML Ro a d m a p
h t t p : / / www. a q s . e s / we b / file s / xm l- ro a d m a p . p d f
1 1 2 0 8 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
XML Ro a d m a p e s u n a p re s e n t a ció n d e la s d ive rs a s t e cn o lo g ía s q u e e s t á n re la cio n a d a s co n XML.
Es t e d o cu m e n t o p e rm it e e s t a b le ce r u n a b a s e d e in fo rm a ció n p a ra e n t ra r e n e l m u n d o d e XML s in
p e rd e rs e , e n co n t ra n d o la in fo rm a ció n m á s a ct u a liza d a p o s ib le . A s u ve z, m u e s t ra la s d is t in t a s
a p lica cio n e s y la s h e rra m ie n t a s n e ce s a ria s , p a ra e l á m b it o d e l d e s a rro llo e n XML.
En t re v is t a a Tim Bra y
h t t p : / / www. re vis t a we b . co m / e n t re vis t e s / t b ra ye n 9 . h t m l
1 0 7 4 4 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
En t re vis t a a Tim Bra y, u n o d e lo s co e d it o re s d e la s e s p e cifica cio n e s d e l XML, e n la re vis t a WEB.
I n t ro d u c c ió n a l XML p o r Fe rn a n d o S a n t a m a ria
h t t p : / / fe s a b id 9 8 . flo rid a - u n i. e s / Co m u n ica cio n e s / f_ s a n t a m a ria / f_ s a n t a m a ria . h t m
9 9 0 7 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
In t e re s a n t e in t ro d u cció n a l XML d e la m a n o d e Fe rn a n d o S a n t a m a ria . Es t e a rt ícu lo fu e p re s e n t a d o
e n la s VI Jo rn a d a s Es p a ñ o la s d e d o cu m e n t a ció n .
Tu t o ria l d e in t ro d u c c ió n a l XML d e Os c a r Le c h u g a Go m e z .
h t t p : / / fa ce . e l. u m a . e s / im a s d / xm l/ xm l. h t m l
1 0 3 4 9 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
Tu t o ria l d e in t ro d u cció n a l XML d e Os ca r Lu is Le ch u g a Gó m e z d e la Un ive rs id a d d e Má la g a .
XML y c o m e rc io e le c t ró n ic o
h t t p : / / www. m a rke t in g yco m e rcio . co m / n u m e ro 5 / 5 xm l. h t m
4 4 5 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Art ícu lo s o b re XML y e l co m e rció e le ct ró n ico , p u b lica d o e n la re vis t a Ma rke t in g y co m e rcio
e le ct ró n ico .
XML, Ja v a y e l fu t u ro d e la W e b
h t t p : / / m e t a la b . u n c. e d u / p u b / s u n - in fo / s t a n d a rd s / xm l/ wh y/ xm la p p s . h t m
5 2 4 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Exce le n t e a rt ícu lo s o b re XML, s u fu t u ro y s u re la ció n co n e l Ja va . Es crit o p o r Jo n Bo s a k, u n o d e lo s
p a d re s d e l XML.
Es p e c ific a c io n e s [ S u b ir]
3 d ire ccio n e s
XML 1 . 0 e n c a s t e lla n o
h t t p : / / s lu g . ct v. e s / ~ o le a / s g m l- e s p / Re c- xm l. h t m l
2 0 4 7 5 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Tra d u cció n a l ca s t e lla n o d e la e s p e cifica ció n d e l XML 1 . 0
La e s p e c ific a c ió n d e l XML c o m e n t a d a .
h t t p : / / www. xm l. co m / a xm l/ a xm l. h t m l
4 5 8 5 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
La re co m e n d a ció n d e l XML co m e n t a d a p o r Tim Bra y, u n o d e s u s co e d it o re s .
XML 1 . 0
h t t p : / / www. w3 . o rg / TR/ 1 9 9 8 / REC- xm l- 1 9 9 8 0 2 1 0
3 8 9 1 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
XML 1 . 0 . Re co m e n d a ció n d e fin it iva d e l W3 C d e l 1 0 d e Fe b re ro d e 1 9 9 8 .
FAQs [ S u b ir]
4 d ire ccio n e s
P e rl XML Fa q
h t t p : / / cro n o p io . n e t / p e rl/ fa q s / p e rlxm lfa q . h t m l
3 7 7 7 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Fa q s o b re co m o t ra b a ja r co n XML d e s d e Pe rl
El XML e n 2 0 p re g u n t a s
h t t p : / / b u ild e r. co m / Au t h o rin g / Xm l2 0 / in d e x. h t m l
4 7 7 5 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
2 0 p re g u n t a s y re s p u e s t a s q u e a yu d a n a s a b e r q u e e s e l XML.
En t o rn o a S GML/ XML
h t t p : / / o rio n . d e u s t o . e s / ~ a b a it u a / ko n ze p t u / s g m l. h t m
8 5 3 7 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
We b d e Jo s e b a Ab a it u a d e d ica d a a l S GML y XML. Po s ib le m e n t e u n a d e la s p rim e ra s We b s e n
ca s t e lla n o d e d ica d o a l S GML. Mu y re co m e n d a b le s lo s a rt ícu lo s q u e t ie n e e s crit o s s o b re e l t e m a y
e n e s p e cia l s u t u t o ria l s o b re S GML.
Ca fe c o n Le c h e
h t t p : / / m e t a la b . u n c. e d u / xm l/
4 7 9 1 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Re co p ila ció n d e n o t icia s y re cu rs o s s o b re XML.
W e b s o b re S GML/ XML d e Ro b in Co v e r
h t t p : / / www. o a s is - o p e n . o rg / co ve r/
4 3 8 8 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
La m e jo r We b s o b re S GML/ XML q u e e xis t e . In d is p e n s a b le p a ra e s t a r a l d ia .
XML. COM
www. xm l. co m
1 8 4 0 8 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
De lo m a s co m p le t it o co n g ra n ca n t id a d d e a rt ícu lo s y re cu rs o s .
XMLHa c k
h t t p : / / www. xm lh a ck. co m
4 5 5 1 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Nu e vo We b d irig id o a lo s d e s a rro lla d o re s e n XML, co n n o t icia s , o p in io n e s y cu a lq u ie r in fo rm a ció n
q u e p u e d a re s u lt a r ú t il a lo s d e s a rro lla d o re s .
XMLI N FO
h t t p : / / www. xm lin fo . co m /
5 7 0 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
We b m a n t e n id a p o r Ja m e s Ta u b e rco n g ra n ca n t id a d d e re cu rs o s s o b re XML.
S GML- ES P
h t t p : / / s lu g . ct v. e s / ~ o le a / s g m l- e s p /
1 2 5 8 3 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Es u n a lis t a d e d is t rib u cio n s o b re S GML y XML e n ca s t e lla n o .
XML- D EV
h t t p : / / www. vs m s . n o t t in g h a m . a c. u k/ vs m s / xm l/ je we ls . h t m l
8 2 7 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Es u n a lis t a d e co rre o p a ra d e s a rro lla d o re s d e a p lica cio n e s XML.
Tu t o ria le s [ S u b ir]
8 d ire ccio n e s
Tu t o ria l d e XML d e An g e l Ba rb e ro
h t t p : / / www. d a t . e t s it . u p m . e s / ~ a b a rb e ro / cu rs o / xm l/ xm lt u t o ria l. h t m l
1 5 3 7 3 vis it a s | Pu n t u a ció n : ( 2 2 vo t o s ) Vo t a
Bu e n t u t o ria l d e XML d e An g e l Ba rb e ro .
XML t u t o ria l e n Zv o n
h t t p : / / zvo n . o rg / xxl/ XMLTu t o ria l/ Ge n e ra l/ b o o k_ e n . h t m l
4 9 4 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Bre ve p e ro co n cis o t u t o ria l s o b re XML e s crit o p o r Milo s va c Nic.
La s e n t id a d e s e n e l XML
h t t p : / / www. xm l. co m / xm l/ p u b / 9 8 / 0 8 / xm lq n a 0 . h t m l
4 1 7 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Co m p le t ís im a in t ro d u cció n a la co rre ct a u t iliza ció n d e la s e n t id a d e s e n e l XML. S u a u t o r e s No rm a n
Wa ls h .
Tu t o ria le s d e XML e n I BM
h t t p : / / www. s o ft wa re . ib m . co m / xm l/ e d u ca t io n / t u t o ria l- p ro g / a b s t ra ct . h t m l
6 0 1 7 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Ín d ice d e lo s t u t o ria le s q u e IBM t ie n e e n s u We b s o b re XML. Po d e is o b t e n e rlo s t a n t o e n fo rm a t o
HTML co m o PDF.
XML a t rib u t o s y e n t id a d e s
h t t p : / / www. h o t wire d . co m / we b m o n ke y/ 9 8 / 4 5 / in d e x3 a . h t m l? t w= e g 1 9 9 8 4 5 3
3 9 3 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Tu t o ria l e n e l q u e s e p ro fu n d iza e n la u t iliza ció n d e lo s a t rib u t o s y la s e n t id a d e s e n lo s d o cu m e n t o s
XML
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
I n t e rn e t .
W AP
3 0 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re WAP. .
» EN ES TA P AGI N A
1 . AS P
2 . Ge n e ra le s
3 . Ja va
4 . Lis t a s d e co rre o
5 . Ot ro s a rt ícu lo s
6 . Pe rl
7 . PHP
8 . Tu t o ria le s
9 . XML
En o t ro s id io m a s
● De s a rro lla d o re s WAP e n No kia
● Ph o n e De ve lo p e r Zo n e
● Wire le s s De ve lo p e r Ne t wo rk
AS P [ S u b ir]
5 d ire ccio n e s
Co ro b o ri
h t t p : / / www. co ro b o ri. co m / wa p /
4 2 2 7 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Bu e n a p á g in a co n u n o s cu a n t o s e je m p lo s s o b re co m o d e s a rro lla r a p lica cio n e s WAP u t iliza n d o
AS Ps . Es t a e n t re s id io m a s y e n t re e llo s e n ca s t e lla n o . Lo s e je m p lo s s e p u e d e n b a ja r e n fo rm a t o
ZIP.
An On lin e S h o p p in g Ca rt W AP Ap p lic a t io n u s in g W ML a n d AS P
h t t p : / / www. a s p t o d a y. co m / a rt icle s / 2 0 0 0 0 3 0 9 . h t m
3 4 8 8 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Es t u p e n d o a rt ícu lo d e By We i Me n g Le e s o b re co m o im p le m e n t a r u n ca rrit o d e la co m p ra
u t iliza n d o AS P y WML.
Co n fig u ra r e l I I S p a ra t ra b a ja r c o n W AP
h t t p : / / www. a n ywh e re yo u g o . co m / a yg / a yg / wa p / Art icle . p o ? t yp e = WAP_ Tu t o ria l&p a g e = 1 2 7 2 0
5 8 8 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Art icu lo e n e l q u e s e e xp lica co m o d e b e m o s co n fig u ra r e l IIS p a ra p o d e r t ra b a ja r co n a p lica cio n e s
WAP.
W AP y AS P
h t t p : / / www. a s p t o d a y. co m / a rt icle s / 1 9 9 9 1 1 1 5 . h t m
3 7 8 7 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Bu e n a rt ícu lo d e in t ro d u cció n a WAP y co m o u t iliza rlo co n lo s AS Ps . Es t a e s la p rim e ra p a rt e d e
d o s a rt ícu lo s s o b re e l t e m a . Es crit o p o r Lu ca Pa s s a n i.
W AP , AS P y XML
h t t p : / / www. we b t e ch n iq u e s . co m / a rch ive s / 2 0 0 0 / 0 3 / p a s s a n i/
3 7 0 5 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Es t u p e n d o a rt ícu lo d e Lu ca Pa s s a n i s o b re g e n e ra r a p lica cio n e s WAP u t iliza n d o XML, AS P y XS L.
De s t a ca m o s d e e s t e a rt ícu lo la co m b in a ció n d e XML y XS LT p a ra la g e n e ra ció n d e WML.
Ge n e ra le s [ S u b ir]
1 2 d ire ccio n e s
Ch ile W AP
h t t p : / / www. ch ile wa p . cl
3 7 3 9 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Gra n va rie d a d d e re cu rs o s e n e s p a ñ o l s o b re WAP, t u t o ria le s , a rt ícu lo s , n o t icia s , e t c.
Py w e b.co m
h t t p : / / www. p ywe b . co m
3 4 7 2 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
W a p Co lo m b ia
h t t p : / / wa p co lo m b ia . u ca u ca . e d u . co
7 7 4 8 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
Es Un p o rt a l d in á m ico e n Wa p cu yo p rin cip a l o b je t ivo e s cre a r u n a co m u n id a d p a ra Co lo m b ia d e
d e s a rro lla d o re s in t e re s a d o s e n la t e cn o lo g ía Wa p
Co m u n id a d s o b re c o m u n ic a c io n e s m ó v ile s e n I CT- N ET
h t t p : / / www. ict n e t . e s / e s p / co m u n id a d e s / m o vil/
3 8 3 8 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Co m u n id a d s o b re co m u n ica cio n e s m o vile s e n ICT- NET. Gra n ca n t id a d d e a rt ícu lo s , d o cu m e n t a ció n
y e n la ce s . Ma n t e n id a p o r Lu is Po n t .
Big w a p s it e
h t t p : / / www. g a t e - ke e p e r. o rg . u k/
1 8 5 3 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Un t u t o ria l s e n cillo y co m p re n s ib le , FAQ, d e s ca rg a s y, s o b re t o d o , u n d ire ct o rio d e e n la ce s s o b re
WAP co n ca s i d o s cie n t a s d ire ccio n e s .
a n y w h e re y o u g o
h t t p : / / www. a n ywh e re yo u g o . co m / a yg / a yg / In d e x. p o ?
5 1 5 6 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Mu y b u e n a re co p ila ció n d e in fo rm a ció n s o b re Wire le s , WAP y Blu e t o o t h .
D e s a rro lla d o re s W AP e n N o k ia
h t t p : / / www. fo ru m . n o kia . co m / m a in / 1 , 6 6 6 8 , 1 _ 1 , 0 0 . h t m l
3 9 4 4 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Zo n a d e No kia d e la We b d e WAP d e d ica d a a lo s d e s a rro lla d o re s .
Eric s s o n W AP d e v e lo p e r Zo n e
h t t p : / / www. e rics s o n . co m / d e ve lo p e rs zo n e /
3 1 9 6 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Zo n a d e la We b d e Erics s o n d e d ica d a a lo s d e s a rro lla d o re s WAP
P h o n e D e v e lo p e r Zo n e
h t t p : / / u p d e v. p h o n e . co m /
3 4 0 6 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
S e cció n d e Ph o n e d e d ica d a a lo s d e s a rro lla d o re s WAP.
W AP Fo ru m
h t t p : / / www. wa p fo ru m . co m /
3 1 0 7 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Pá g in a o ficia l d e WAP. Es t a We b e s t a fo rm a d a p o r la s o rg a n iza cio n e s y e m p re s a s e n ca rg a d a s d e
d e s a rro lla r la s e s p e cifica cio n e s re la cio n a d a s co n e s t e t e m a .
W a p h o le s u n
h t t p : / / www. wa p h o le s u n . co m /
7 2 1 2 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
We b s o b re WAP e n in g le s d e s a rro lla d a p o r e l e s p a ñ o l Ca rlo s Fe rn á n d e z. In d is p e n s a b le p a ra lo s
q u e e s t e n in t e re s a d o s e n d e s a rro lla r ju e g o s p a ra m ó vile s .
W ire le s s D e v e lo p e r N e t w o rk
h t t p : / / www. wire le s s d e vn e t . co m /
3 4 9 3 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
We b d e in d is p e n s a b le vis it a p a ra e s t a r a l d ía e n e l d e s a rro llo d e a p lica cio n e s Wire le s s .
Ja v a [ S u b ir]
3 d ire ccio n e s
Ge n e ra r W ML d e s d e u n S e rv le t
h t t p : / / ja va . p ro g ra m a cio n . n e t / t a lle r/ wm ls e rvle t . h t m
3 2 6 5 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Art ícu lo e n ca s t e lla n o d e s d e e l q u e s e e xp lica co m o g e n e ra r WML d e s d e u n s e rvle t .
Bu ild in g S e rv le t s t o Ou t p u t W ML Co n t e n t
h t t p : / / www. a n ywh e re yo u g o . co m / a yg / a yg / wa p / Art icle . p o ? t yp e = WAP_ Tu t o ria l&p a g e = 1 0 7 4 3
4 9 7 5 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Art icu lo e n e l q u e s e e xp lica co m o g e n e ra r WML d e s d e u n s e rvle t .
W AP e s
h t t p : / / e s . e g ro u p s . co m / g ro u p / wa p e s
4 6 8 1 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Lis t a s o b re t e cn o lo g ía WAP e n ca s t e lla n o .
w m lp ro g ra m m in g
h t t p : / / www. e g ro u p s . co m / g ro u p / wm lp ro g ra m m in g
3 0 0 8 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Lis t a e n in g le s s o b re WML y WMLS crip t d irig id a a d e s a rro lla d o re s d e a p lica cio n e s WAP.
Ot ro s a rt íc u lo s [ S u b ir]
1 d ire cció n
P e rl [ S u b ir]
1 d ire cció n
Z- Y- G- O
h t t p : / / wa p . z- y- g - o . co m / t o o ls /
3 1 2 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Lib re ria d e e je m p lo s e n Pe rl p a ra t ra b a ja r co n WML: WML t o WMLc, HTML t o WML, e t c.
P HP [ S u b ir]
1 d ire cció n
HAW HAW
h t t p : / / www. h a wh a w. d e
3 2 8 1 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Lib re ría d e cla s e s PHP p a ra g e n e ra r fa cilm e n t e t a n t o p á g in a s HTML co m o p á g in a s WML.
Tu t o ria le s [ S u b ir]
3 d ire ccio n e s
ABC d e l W AP
h t t p : / / u s u a rio s . lyco s . e s / m a n u a le s wa p
1 2 7 1 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Ma n u a l d e WAP, m á s e n fo ca d o a l p ro t o co lo e n s í q u e a lo s le n g u a je s WML y WMLS crip t .
W a p fa c il
h t t p : / / wa p fa cil. e s g ra t is . n e t /
9 9 8 5 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
W MLCLUB
h t t p : / / www. wm lclu b . co m
4 7 0 0 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
In t e re s a n t e We b co n g ra n ca n t id a d d e in fo rm a ció n s o b re WAP. Tie n e u n t u t o ria l d e WML, o t ro d e
WMLS crip t y u n m o n t ó n d e s e ccio n e s : e n la ce s , o fe rt a s d e t ra b a jo , u n e s t u p e n d o FAQ, e t c. .
XML [ S u b ir]
2 d ire ccio n e s
A Mo b ile W in d o w o n o u r P o rt a l
h t t p : / / www. xm l. co m / p u b / 2 0 0 0 / 0 5 / 3 1 / s t yle / in d e x. h t m l
3 1 5 0 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
In t e re s a n t is im o a rt ícu lo d e Did ie r Ma rt in s o b re co m o g e n e ra r u n p o rt a l WAP y HTML u t iliza n d o
XML y XS LT.
Co n t e n t Ma n a g e m e n t a n d D is t rib u t io n Us in g XML
h t t p : / / www. wire le s s d e vn e t . co m / a rt icle s / ju n 2 0 0 0 / xm lca s t . h t m l
3 0 7 3 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Mu y b u e n a rt ícu lo s o b re co m o p o d e m o s cre a r co n t e n id o p a ra n u e s t ra We b e n d ife re n t e s fo rm a t o s
( HTML, RS S , WML) u t iliza n d o XML.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Te o ría
9 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re t e o ría d e la p ro g ra m a ció n .
● Alg o rit m o s ( 3 )
● Me t o d o lo g ía ( 2 )
● Re d e s ( 1 )
● Te o ría d e b a s e s d e d a t o s ( 1 )
● UML ( 2 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Te o ría .
Me t o d o lo g ía
2 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re m e t o d o lo g ía d e la p ro g ra m a ció n .
» EN ES TA P AGI N A
1 . Cu rs o s
Cu rs o s [ S u b ir]
2 d ire ccio n e s
I n t ro P ro g ra
h t t p : / / a r. g e o cit ie s . co m / lu is _ p irir/
5 4 7 9 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
Pe q u e ñ o cu rs o , n o d e m a s ia d o co m p le t o , d e in t ro d u cció n a la p ro g ra m a cio n , ce n t ra d a e n la
e la b o ra ció n d e a lg o rit m o s .
Cu rs o d e Me t o d o lo g ía d e la p ro g ra m a c ió n
h t t p : / / 6 4 . 2 2 6 . 1 8 8 . 2 6 / s ivn e t wo rk- www/ cu rs o s _ g ra t is / In d ice % 2 0 Me t o . h t m
2 4 6 4 0 vis it a s | Pu n t u a ció n : ( 7 5 vo t o s ) Vo t a
Co m p le t o cu rs o d e m e t o d o lo g ía d e la p ro g ra m a ció n . Id e a l p a ra a q u e llo s q u e n o h a ya n p ro g ra m a d o
n u n ca .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Te o ría . UML
2 d ire ccio n e s
Dire ccio n e s s o b re Un ifie d Mo d e lin g La n g u a g e , e l e s t á n d a r d e re p re s e n t a ció n d e d is e ñ o o rie n t a d o a
o b je t o s , n a cid o d e la s ce n iza s d e OMT y Bo o ch .
» EN ES TA P AGI N A
1 . Do cu m e n t a cio n
D o c u m e n t a c io n [ S u b ir]
2 d ire ccio n e s
Cu rs o d e An á lis is y D is e ñ o Orie n t a d o a Ob je t o s
h t t p : / / www. d s ic. u p v. e s / ~ u m l/
2 5 9 1 2 vis it a s | Pu n t u a ció n : ( 5 1 vo t o s ) Vo t a
Re co p ila ció n e n d ife re n t e s fo rm a t o s ( PDF, Po we rPo in t ) d e u n cu rs o d e UML im p a rt id o p o r d o s
p ro fe s o re s d e la Un ive rs id a d Po lit e cn ica d e Va le n cia . Dis p o n e d e p rá ct ica s a re a liza r co n la
h e rra m ie n t a Ra t io n a l Ro s e .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Te o ría .
Alg o rit m o s
3 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s co n a lg o rit m o s o s o b re cre a ció n d e a lg o rit m o s ( a lg o rít m ica ) .
» EN ES TA P AGI N A
1 . Re co p ila cio n e s d e a lg o rit m o s
ALGORI TMI A
h t t p : / / www. a lg o rit m ia . cjb . n e t
1 8 0 9 1 vis it a s | Pu n t u a ció n : ( 7 4 vo t o s ) Vo t a
Re co p ila ció n d e lo s a lg o rit m o s m á s h a b it u a le s d e t a lla d a m e n t e e xp lica d o s y o rg a n iza d o s p o r
s e ccio n e s .
N u m e ric a l Re c ip e s in C
h t t p : / / www. n r. co m
1 0 5 6 1 vis it a s | Pu n t u a ció n : ( 1 6 vo t o s ) Vo t a
Ve rs ió n o n lin e ( e n PS y PDF) d e l fa m o s o lib ro d e a lg o rit m o s d e cá lcu lo n u m é rico . No s e p u e d e
b a ja r p o r co m p le t o , s in o a lg o rit m o p o r a lg o rit m o , lo q u e lo h a ce m á s a d e cu a d o p a ra re s o lve r
a lg ú n p ro b le m a e n co n cre t o . Ad e m á s lo s a lg o rit m o s n o s e p u e d e n u s a r s in p e rm is o d e lo s a u t o re s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
im p e ra t iv o s
4 5 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re le n g u a je s im p e ra t ivo s .
● Ad a ( 8 )
● C (9)
● Clip p e r & xBa s e ( 9 )
● Co b o l ( 4 )
● En s a m b la d o r ( 6 )
● Eu p h o ria ( 1 )
● Fo rt ra n ( 1 )
● Pa s ca l ( 5 )
● Qu ickBa s ic ( 2 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
im p e ra t iv o s . C
9 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re e l p o p u la r le n g u a je C.
» EN ES TA P AGI N A
1 . Cu rs o s
2 . Ge n e ra le s
En o t ro s id io m a s
● UNIX S ys t e m Ca lls a n d S u b ro u t in e s u s in g C
Cu rs o s [ S u b ir]
4 d ire ccio n e s
Go rk a ´ s W e b P a g e
h t t p : / / www. g e o cit ie s . co m / g _ u rru t ia /
8 1 2 5 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
Co n t ie n e u n b u e n cu rs o d e C, d e s a fo rt u n a d a m e n t e in co m p le t o , y d ive rs a s p á g in a s s o b re e l
co m p ila d o r DJGPP, in clu ye n d o a yu d a p a ra s u in s t a la ció n e in fo rm a ció n s o b re s u t ra d u cció n a l
ca s t e lla n o .
P ro g ra m a c ió n e n C, p o r Virg ilio Gó m e z
h t t p : / / www. g e o cit ie s . co m / S ilico n Va lle y/ Ga ra g e / 8 2 1 1 / fro n t a l/ p ro g c. h t m
1 4 4 8 8 vis it a s | Pu n t u a ció n : ( 1 3 vo t o s ) Vo t a
UN I X S y s t e m Ca lls a n d S u b ro u t in e s u s in g C
h t t p : / / www. cs . cf. a c. u k/ Da ve / C/
5 9 9 1 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Un lib ro co m p le t o d is p o n ib le e n HTML e n e l q u e n o s ó lo e n s e ñ a C, s in o co m o a cce d e r d e s d e e s t e
le n g u a je a la s lla m a d a s d e l s is t e m a d e Un ix.
Ge n e ra le s [ S u b ir]
5 d ire ccio n e s
Le n g u a je C
h t t p : / / www. je a n p a u l. co m . a r
2 7 2 3 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Pá g in a co n e n la ce s a m a n u a le s , t u t o ria le s e in fo rm a cio n d ive rs a s o b re p ro g ra m a cio n e n C y t e m á s
a fin e s ( C+ + , vis u a l C+ + , C# , Op e n GL, Dire ct X, Lin u x, e t c. ) .
Mu n d o C. n e t
h t t p : / / www. m u n d o c. n e t
3 5 4 3 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Po rt a l d e d ica d o a C y C+ + co n u n b u e n cu rs o d e C y u n b u e n n ú m e ro d e e je m p lo s d e có d ig o
fu e n t e y a lg u n a s u t ilid a d e s , va rio s co m p ila d o re s , t ru co s , fo ro , ch a t e , in clu s o , o fe rt a s d e e m p le o .
Le n g u a je C
h t t p : / / www. le n g u a je - c. e s . vg
6 1 5 5 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Pá g in a e n la q u e p o d rá e n co n t ra r in fo rm a ció n , m a n u a le s , a rt ícu lo s , e t c, s o b re e l Le n g u a je C
El Rin c ó n d e l C
h t t p : / / www. e lrin co n d e lc. co m
1 2 9 2 9 vis it a s | Pu n t u a ció n : ( 1 8 vo t o s ) Vo t a
Cu rs o s d e p ro g ra m a ció n e n C , m u ch o có d ig o fu e n t e , b o le t in e s , lis t a s d e co rre o e in fo rm a ció n
s o b re co m p ila d o re s d e C/ C+ + . El p u n t o d e e n cu e n t ro d e lo s p ro g ra m a d o re s d e C.
D JGP P
h t t p : / / www. d e lo rie . co m / d jg p p /
9 7 9 5 vis it a s | Pu n t u a ció n : ( 1 5 vo t o s ) Vo t a
La p á g in a d e l fa m o s o co m p ila d o r d e C p a ra DOS / Win d o ws . Es u n a ve rs ió n d e l GNU C p re s e n t e e n
m u ch o s Un ix p a ra e s t o s s is t e m a s o p e ra t ivo s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
im p e ra t iv o s . P a s c a l
5 d ire ccio n e s
Re co p ila ció n d e d ire ccio n e s s o b re e l le n g u a je Pa s ca l y s u s u ce s o r, Tu rb o Pa s ca l.
» EN ES TA P AGI N A
1 . Cu rs o s
2 . Ge n e ra le s
Cu rs o s [ S u b ir]
3 d ire ccio n e s
Eje rc ic io s re s u e lt o s
h t t p : / / u s u a rio s . lyco s . e s / Vict o rS a n ch e z2 / t u t o ria le s / t u t o ria le s . h t m
4 7 1 0 vis it a s | Pu n t u a ció n : ( 2 1 vo t o s ) Vo t a
Pá g in a d o n d e p u e d e s e n co n t ra r m á s d e 2 0 0 e je rcicio s re s u e lt o s e n Pa s ca l. Ad e m á s , s i t ie n e s
a lg u n a d u d a p u e d e s p re g u n t a r a s u a u t o r p a ra q u e in t e n t e e ch a rt e u n a m a n o .
Tu t o ria l d e Tu rb o P a s c a l 7 . 0
h t t p : / / www. t e rra . e s / p e rs o n a l/ ra u l_ zm /
1 1 5 0 8 vis it a s | Pu n t u a ció n : ( 4 0 vo t o s ) Vo t a
Pa rco t u t o ria l s o b re Tu rb o Pa s ca l 7 . 0 . No e n t ra e n p ro fu n d id a d e n la s p o s ib ilid a d e s d e l le n g u a je n i
e xp lica d e m a s ia d o lo s co n ce p t o s , p o r lo q u e s ó lo re s u lt a a d e cu a d o p a ra lo s ya in icia d o s e n e l
m u n d o d e la p ro g ra m a ció n .
Tu t o ria l d e Tu rb o P a s c a l
h t t p : / / m e m b e rs . xo o m . co m / t u t o ria le s
1 1 3 5 0 vis it a s | Pu n t u a ció n : ( 2 1 vo t o s ) Vo t a
Mu y b u e n t u t o ria l d e Tu rb o Pa s ca l.
Ge n e ra le s [ S u b ir]
2 d ire ccio n e s
P á g in a d e P a s c a l d e N a c h o Ca b a n e s
h t t p : / / m e m b e rs . e s . t rip o d . d e / n ca b a n e s / p a s ca l. h t m
7 9 8 0 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
Un b u e n p u n t o d e in t ro d u cció n a l Pa s ca l, co n cu rs o s y e n la ce s a co m p ila d o re s in clu id o s .
Fre e p a s c a l
h t t p : / / www. fre e p a s ca l. o rg /
8 4 0 8 vis it a s | Pu n t u a ció n : ( 2 2 vo t o s ) Vo t a
Pá g in a q u e a lb e rg a e l p ro ye ct o Fre e p a s ca l, q u e in t e n t a cre a r u n co m p ila d o r g ra t u it o y
m u lt ip la t a fo rm a d e Ob je ct Pa s ca l, la ve rs ió n o rie n t a d a a o b je t o d e l le n g u a je Pa s ca l cre a d a p o r
Bo rla n d .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Va rio s
2 7 d ire ccio n e s
Ca t e g o ría q u e e n g lo b a a q u e lla s d ire ccio n e s d e p ro g ra m a ció n q u e n o p u d ie ro n s e r ca t a lo g a d a s e n
o t ra s p á g in a s .
● Ge n e ra le s ( 1 4 )
● Grá fica ( 5 )
● His t o ria ( 4 )
● Pe rs o n a le s ( 1 )
● Pu b lica cio n e s ( 1 )
● S o ft wa re lib re ( 2 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Va rio s .
Ge n e ra le s
1 4 d ire ccio n e s
Dire ccio n e s q u e e n g lo b a n d e m a s ia d o s a s p e ct o s d e la p ro g ra m a ció n co m o p a ra p o d e r s e r
re s t rin g id o s e n u n a s o la ca t e g o ría .
» EN ES TA P AGI N A
1 . Bu s ca d o re s
2 . Cu rs o s
3 . Ge n e ra le s
4 . Lis t a s d e co rre o
Bu s c a d o re s [ S u b ir]
1 d ire cció n
Bu s c a d o c
h t t p : / / b u s ca d o c. o d s . o rg
2 0 8 9 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Bu s ca d o r d e d o cu m e n t a cio n in fo rm á t ica s o la m e n t e e n ca s t e lla n o . Tie n e in d e xa d a s la m a yo ria d e
we b s e n ca s t e lla n o q u e o fre ce n d o cu m e n t a ció n in fo rm a t ica ( in clu ye n d o la n u e s t ra ) .
Cu rs o s [ S u b ir]
2 d ire ccio n e s
Cy b e rt u t o s . c o m
h t t p : / / www. cyb e rt u t o s . co m
5 8 6 7 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Dis p o n e d e a lg u n o s t u t o ria le s y m a n u a le s d e lo s m a s u s a d o s le n g u a je s d e p ro g ra m a cio n ,
h e rra m ie n t a s d e d is e ñ o we b y g ra fico y a lg u n o s e n la ce s re la cio n a d o s . Es ca s o d e m a t e ria l.
Ap re n d a I n fo rm á t ic a c o m o s i e s t u v ie ra e n P rim e ro
h t t p : / / fca p ra . ce it . e s / Ayu d a In f/
9 9 1 6 vis it a s | Pu n t u a ció n : ( 1 0 vo t o s ) Vo t a
Dive rs o s cu rs o s e n fo rm a t o PDF o fre cid o s a s u s e s t u d ia n t e s p o r la Un ive rs id a d d e Na va rra . Cla ro s
y co m p le t o s , e n o ca s io n e s p u e d e n re s u lt a r d ifícile s a l le ct o r n o in icia d o .
Ge n e ra le s [ S u b ir]
1 0 d ire ccio n e s
El Tu t o ria l
h t t p : / / www. e lt u t o ria l. co m
6 4 4 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Po rt a l d e d o cu m e n t a ció n t é cn ica . Co n s is t e b á s ica m e n t e e n u n b u e n n ú m e ro d e e n la ce s b ie n
o rg a n iza d o s a a rt ícu lo s , t u t o ria le s , lib ro s , e t c. . Ta m b ié n d is p o n e d e fo ro s p ro p io s y u n g lo s a rio d e
t é rm in o s t é cn ico s .
Ma g iOS
h t t p : / / www. m a g io s . co m
1 0 4 6 vis it a s | Pu n t u a ció n : ( 1 7 vo t o s ) Vo t a
Po rt a l e n cre cim ie n t o d e d ica d o a la p ro g ra m a ció n y la s e g u rid a d in fo rm á t ica , co n n o t icia s , a rt ícu lo s
y a lg ú n t u t o ria l.
El Gu ru P ro g ra m a d o r
h t t p : / / www. e lg u ru p ro g ra m a d o r. co m . a r
2 5 5 3 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
Ag ra d a b le p á g in a d e d ica d a a la p ro g ra m a cio n y e l d e s a rro llo we b . Tie n e b a s t a n t e s a rt icu lo s ,
a lg u n o s t u t o ria le s , fo ro s , y e n la ce s . Zo n a s e s p e cia liza d a s d e AS P, Vis u a l Ba s ic, Fla s h , Ja va S crip t ,
S QL, XML, HTML y o t ro s le n g u a je s .
CGR S o ft w a re . c o m
h t t p : / / www. cg rs o ft wa re . co m
1 1 9 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
"Me g a b a s e " ( s e g ú n s u s a u t o re s ) d e re cu rs o s p a ra p ro g ra m a d o re s . In clu ye m a n u a le s , e je m p lo s d e
có d ig o , p ro g ra m a s y re cu rs o s va rio s p a ra p ro g ra m a d o re s .
El Rin c ó n d e l P ro g ra m a d o r ( b is )
h t t p : / / www. e lrin co n d e lp ro g ra m a d o r. co m
1 3 6 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Art ícu lo s , n o t icia s , t ru co s y d ive rs o s re cu rs o s p a ra lo s p ro g ra m a d o re s . Dis p o n e d e ca n a le s
e s p e cia liza d o s d e AS P, C y C+ + , De lp h i, Ja va , HTML, Fla s h y m u ch o s o t ro s . Na d a q u e ve r co n e l
o t ro rin có n d e l p ro g ra m a d o r, q u e s e s e p a .
El Rin c ó n d e l P ro g ra m a d o r
h t t p : / / rin co n p ro g . m e t ro p o li2 0 0 0 . co m /
4 8 5 3 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
Un rin có n p a ra t o d o s a q u e llo s in t e re s a d o s p o r la in fo rm á t ica e n g e n e ra l, y p o r la p ro g ra m a ció n e n
p a rt icu la r, co n in t e re s a n t e s t u t o ria le s s o b re Pyt h o n , C, Pro g ra m a ció n g rá fica , e t c.
La w e b d e l p ro g ra m a d o r
h t t p : / / www. la we b d e lp ro g ra m a d o r. co m /
5 2 7 0 vis it a s | Pu n t u a ció n : ( 7 vo t o s ) Vo t a
Po s ib le m e n t e , la we b m á s vis it a d a d e p ro g ra m a ció n e n ca s t e lla n o . Po s e e u n g ra n ín d ice d e
re cu rs o s y d o cu m e n t a ció n p a ra e l p ro g ra m a d o r. S u m a yo r d e fe ct o e s u n a e s t ru ct u ra q u e d ificu lt a
la n a ve g a ció n . Ult im a m e n t e h a a ñ a d id o u n b u s ca d o r.
la Va ria b le
h t t p : / / www. la va ria b le . co m
3 1 3 2 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
En la Va ria b le . co m s e p u e d e n e n co n t ra r t ru co s , a rt ícu lo s y t u t o ria le s s o b re AS P, CGI, XML, Ja va ,
S QL, Ja va S crip t , VBS crip t y o t ra s n u e va s t e cn o lo g ía s .
COD E. BOX. S K
h t t p : / / co d e . b o x. s k
2 5 7 3 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
Un b u e n lu g a r p a ra p ro g ra m a d o re s , co n fo ro s , e n la ce s y t u t o ria le s . Es p e cia lm e n t e in t e re s a n t e s
a lg u n a s d e s u s s e ccio n e s , co m o la d e PHP.
P ro g ra m m e r's h e a v e n
h t t p : / / www. p ro g ra m m e rs h e a ve n . co m /
3 3 0 4 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
Un a e xce le n t e re co p ila ció n d e e n la ce s ( u n o s 2 4 0 0 ) y fich e ro s d e u t ilid a d p a ra e l p ro g ra m a d o r
( e je m p lo s , h e rra m ie n t a s ) t o t a lm e n t e g ra t u it o s .
La t iu m S o ft w a re
h t t p : / / www. la t iu m s o ft wa re . co m
1 0 1 6 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
El p rin cip a l in t e ré s d e e s t a we b s o n s u s b o le t in e s . Po s e e d e Pa s ca l ( De lp h i, Kylix) , Vis u a l Ba s ic, y
u n o g e n é rico p a ra t o d o t ip o d e p ro g ra m a d o re s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Va rio s .
Grá fic a
5 d ire ccio n e s
Dire ccio n e s s o b re p ro g ra m a ció n g rá fica , lib re ría s , 3 D, e t c. . S in re s t ricció n d e le n g u a je s u t iliza d o s .
» EN ES TA P AGI N A
1 . Ge n e ra le s
2 . Cu rs o s
Ge n e ra le s [ S u b ir]
3 d ire ccio n e s
El m u n d o d e l c a o s
h t t p : / / www. e lm u n d o d e lca o s . t k/
1 5 5 1 vis it a s | Pu n t u a ció n : ( 4 vo t o s ) Vo t a
Pá g in a d e d ica d a a la p ro g ra m a ció n g rá fica e n C y C+ + , co n e s p e cia l h in ca p ié e n la p ro g ra m a ció n
d e fra ct a le s ( fu n cio n e s m a t e m á t ica s e n va ria b le co m p le ja ) .
3 D u p . c o m - El P o rt a l d e l D is e ñ o 3 D y Mu lt im e d ia
h t t p : / / e s . 3 d u p . co m
5 4 4 6 vis it a s | Pu n t u a ció n : ( 4 6 vo t o s ) Vo t a
Ve rs ió n e n Es p a ñ o l d e l Po rt a l e s p e cia liza d o e n Dis e ñ o 3 D y Mu lt im e d ia q u e cu e n t a co n Mo t o r d e
Bú s q u e d a , No t icia s , We b s y Co rre o Gra t u it o s , Fo ru m s , Ch a t s , Tie n d a On lin e , Ga le ría d e Art is t a s y
Zo n a d e Do wn lo a d co n Te xt u ra s , Mo d e lo s 3 D y Plu g in s .
P ro g ra m a c ió n Grá fic a
h t t p : / / www. g e o cit ie s . co m / va lco e y/ in d e x. h t m l
8 4 7 8 vis it a s | Pu n t u a ció n : ( 9 vo t o s ) Vo t a
Co m p le t a p á g in a co n n u m e ro s o s a rt ícu lo s s o b re p ro g ra m a ció n g rá fica e n Vis u a lC+ + , Op e n GL y
Vis u a l Ba s ic. Ta m b ié n e xa m in a a fo n d o la t e o ría d e fra ct a le s , g rá fico s 2 D y 3 D y la s m a t e m á t ica s
n e ce s a ria s p a ra p o d e r e n t e n d e r t o d o lo d e m á s , a u n q u e s e a p o co .
Cu rs o s [ S u b ir]
2 d ire ccio n e s
Bre v e Tu t o ria l d e p ro g ra m a c ió n c o n Mo t if
h t t p : / / www. co m p u lin u x. co m / d ie g o / d a t a / 1 1 0 / g m _ in d ice . h t m l
2 1 1 4 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Bre ve Tu t o ria l d e p ro g ra m a ció n co n Mo t if co n e je m p lo s y t e xt o s s e n cillo s y d id á ct ico s .
Tu t o ria l d e 3 D
h t t p : / / u s u a rio s . m a p t e l. e s / jo s e cp u jo l/
4 9 8 3 vis it a s | Pu n t u a ció n : ( 1 0 vo t o s ) Vo t a
Bu e n t u t o ria l s o b re lo s fu n d a m e n t o s d e la p ro g ra m a ció n e n 3 D. Au n q u e p u e d a e ch a r p a ra a t rá s e l
h e ch o d e q u e lo s e je m p lo s y p ro g ra m a s e s t é n h e ch o s e n Tu rb o Pa s ca l, co n vie n e e ch a rle u n
vis t a zo p a ra e n t e n d e r có m o fu n cio n a a b a jo n ive l la p ro g ra m a ció n e n 3 D.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Lo s ú lt im o s Nuestras zonas
e n la c e s
En e s t a p á g in a
p o d rá s a cce d e r a
lo s ú lt im o s e n la ce s
a ñ a d id o s a n u e s t ra
ba se de da tos.
P HP y fu n c io n e s d e FTP En In t e rn e t / PHP
h t t p : / / p ro g ra m a cio n . co m / p h p / a rt icu lo . fli_ p h p ft p . h t m l
1 4 3 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Art icu lo e n ca s t e lla n o d o n d e s e e xp lica co m o re a liza r FTP d e s d e a p lica cio n e s e n PHP.
Tu t o ria l d e XP a t h . Ve r. 1 . 0 En In t e rn e t / XS L, XS LT y Xp a t h
h t t p : / / g e n e u ra . u g r. e s / ~ vict o r/ cu rs illo s / xm l/ XPa t h /
1 3 9 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Tu t o ria l in t ro d u ct o rio a la t e cn o lo g ía XPa t h .
Ge n e ra c ió n d e p á g in a s W e b u s a n d o XS LT y XML En In t e rn e t / XS L, XS LT y Xp a t h
h t t p : / / g e n e u ra . u g r. e s / ~ jm e re lo / XS LT/
3 2 4 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Pe q u e ñ o t u t o ria l s o b re XS LT y có m o g e n e ra r we b s a p a rt ir d e fich e ro s XML u s a n d o S a xo n o Xa la n .
W e b d e fLI P I S En In t e rn e t / PHP
h t t p : / / www. flip is . n e t
6 9 4 vis it a s | Pu n t u a ció n : ( 1 vo t o ) Vo t a
La p á g in a d e l e n ca rg a d o d e PHP e n ca s t e lla n o ; co n s t a p rin cip a lm e n t e d e a rt ícu lo s y t u t o ria le s
s o b re PHP y t e cn o lo g ía s a fin e s .
I n d ic e P ERL En Le n g u a je s d e s crip t / Pe rl
h t t p : / / lm s a iza rro b a . t rip o d . co m / In d ice PERL. h t m l
8 1 8 vis it a s | Pu n t u a ció n : ( 2 vo t o s ) Vo t a
Pe q u e ñ a p á g in a d o n d e s e in d ica d o n d e co n s e g u ir PERL y s e d a n a lg u n o s e je m p lo s d e u s o .
P HP p a ra t o rp e s En In t e rn e t / PHP
h t t p : / / p h p - h is p a n o . n e t
2 2 9 7 vis it a s | Pu n t u a ció n : ( 2 0 vo t o s ) Vo t a
We b d e l ca n a l # p h p _ p a ra _ t o rp e s d e l IRC- His p a n o . Dis p o n e d e t u t o ria le s , s crip t s y fo ro s , co n
co n t e n id o s p ro p io s . De s a fo rt u n a d a m e n t e h a y q u e re g is t ra rs e p a ra a cce d e r.
Cu rs o d e Ha s k e ll d e Je ro e n Fo k k e r
h t t p : / / www. cs . u u . n l/ p e o p le / je ro e n / co u rs e s / fp - s p . p d f En Ot ro s le n g u a je s / Ha s ke ll
1 0 0 4 vis it a s | Pu n t u a ció n : ( 5 vo t o s ) Vo t a
Cu rs o e m p le a d o e n la s cla s e s d e la Un ive rs id a d d e Ut re ch t . Aú n cu a n d o s e re fie ra a Go fe r, e n
re a lid a d e l le n g u a je e s Ha s ke ll, q u e p o r lo vis t o t ie n e h a s t a a p o d o s . Es m u y s e n cillo y e s t á m u y
b ie n t ra d u cid o .
S is t e m a s Op e ra t iv o s En S is t e m a s o p e ra t ivo s
h t t p : / / e xa . u n n e . e d u . a r/ d e p a r/ a re a s / in fo rm a t ica / S is t e m a s Op e ra t ivo s / S OF. h t m
2 0 5 3 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Co m p le t o lib ro o n lin e cu yo s co n t e n id o s co rre s p o n d e n a u n cu rs o u n ive rs it a rio d e S is t e m a s
Op e ra t ivo s Co n ve n cio n a le s y Dis t rib u id o s . S e p u e d e d e s ca rg a r e l cu rs o e n PDF. La p á g in a
p rin cip a l, n o o b s t a n t e , e s t á s o b re ca rg a d a a la e xt e n u a ció n .
P la n e t a S iliu s En Va rio s / Pe rs o n a le s
h t t p : / / we lco m e . t o / p la n e t a s iliu s
3 6 6 vis it a s | Pu n t u a ció n : ( 3 vo t o s ) Vo t a
Dis p o n e d e va rio s p ro g ra m a s cre a d o s p o r e l a u t o r, h is t o ria d e a lg u n o s le n g u a je s , co m p ila d o re s ,
t u t o ria le s e n ZIP, crip t o g ra fía , e je m p lo s d e có d ig o , p rá ct ica s d e s u ca rre ra , e t c.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Do cu m e n t a ció n | Re cu rs o s | Ta lle r Ja va
N e w 2 Ja v a : Co n s t ru ir u n a Ap lic a c ió n : 4 . - Le e r y
Es c rib ir Fic h e ro s y Ma n e ja r Ex c e p c io n e s
Au t o r: S u n
Tra d u c t o r: Ju a n An t o n io Pa lo s ( Ozit o )
P u e d e s e n c o n t ra r la Ve rs io n Orig in a l e n I n g le s e n ( h t t p :/ / ja v a . s u n . c o m )
I n d ic e d e c o n t e n id o s
● In t ro d u cció n
❍ Em p e za n d o
❍ Pre p a ra rn o s p a ra lo s Pro b le m a s
● Ma n e ja r Exce p cio n e s
❍ Ma n e ja r Exce p cio n e s
❍ En t ra d a y S a lid a e n Ja va
● Cre a r e l Co n s t ru ct o r
❍ Cre a r e l Co n s t ru ct o r
❍ La cla s e Re a d e r
❍ Le e r e l Fich e ro d e n t ro d e l Te xt Are a
● Ma n e ja r la s Exce p cio n e s La n za d a s
❍ Ma n e ja r la s Co n d icio n e s La n za d a s
■ Có d ig o e n e l b lo q u e Ca t ch
■ Blo q u e fin a lly
❍ De s p le g a r Ca ja s d e Diá lo g o
● Co m p le t a r la Cla s e No rt h Pa n e l
❍ Co m p le t a r la cla s e No rt h Pa n e l
❍ La cla s e Ce n t e rPa n e l
■ Áre a d e Te xt o Ed it a b le y co n Ba rra s d e De s p la za m ie n t o
● Co n t ro l d e Dis t rib u ció n
❍ La cla s e Bo x y la Dis t rib u ció n
❍ Es crib ir Fich e ro s co n JFile Ch o o s e r
❍ Es crib ir a Fich e ro s
© 1 9 9 8 - 2 0 0 2 , Ju a n An t o n io Pa lo s ( Ozit o ) y Jo a q u in Bra vo .
Ja va e n ca s t e lla n o .
Do cu m e n t a ció n | Re cu rs o s | Ta lle r Ja va
Op e ra c io n e s a v a n z a d a s c o n JD BC y Ja v a
Au t o r: IBM
Tra d u c t o r: Ju a n An t o n io Pa lo s ( Ozit o )
P u e d e s e n c o n t ra r la Ve rs io n Orig in a l e n I n g le s e n (
h t t p :/ / ib m . c o m / d e v e lo p e rw o rk s )
I n d ic e d e c o n t e n id o s
● In t ro d u ció n a l Tu t o ria l
❍ ¿ De b e ría le e r e s t e Tu t o ria l?
❍ ¿ S o b re q u é va e s t e Tu t o ria l?
❍ He rra m ie n t a s
● Dis e ñ o d e la Ap lica ció n
❍ S is t e m a d e Ba s e d e Da t o s a Ut iliza r
❍ In icia liza ció n d e la Co n e xió n a la Ba s e d e Da t o s
❍ El d e s crip t o r d e d e s p lie g u e
❍ El Re p o s it io rio d e Co n e xio n e s
● Es q u e m a d e la Ap lica ció n
❍ Cre a ció n d e l Es q u e m a
❍ Ma n e jo d e Erro re s
❍ Lim p ie za d e Es q u e m a
❍ Re lle n a r la Ta b la
❍ Ve r lo s Re s u lt a d o s
❍ Le e r la Ta b la u s u a rio s d e s d e la Ba s e d e Da t o s
● S e n t e n cia s Pre p a ra d a s
❍ In t ro d u cció n a la s S e n t e n cia s Pre p a ra d a s
❍ "In s e rt " Pre p a ra d o
❍ "Qu e ry" Pre p a ra d o
● S e n t e n cia s Ca lla b le
❍ In t ro d u cció n a lo s Ob je t o s Ca lla b le S t a t e m e n t
❍ Cre a r u n Pro ce d im ie n t o Alm a ce n a d o
❍ Lla m a r a u n Pro ce d im ie n t o Alm a ce n a d o
● Tip o s d e Da t o s Ava n za d o s
❍ In t ro d u ció n a lo s Tip o s d e Da t o s Ava n za d o s
❍ In s e rt a r Blo b s
❍ S e le ccio n a r u n Blo b
❍ In s e rt a r u n Clo b
❍ S e le ccio n a r u n Clo b
I m p rim ir e n Ja v a ( 1 9 / 1 0 / 2 0 0 2 )
Po r Ju a n An t o n io Pa lo s ( Ozit o )
t o d o b u e n o p e ro fa lt a . . . . ( 1 7 / 1 0 / 2 0 0 2 )
Po r o m a r ve le z
p ro g ra m a s ( 1 5 / 1 0 / 2 0 0 2 )
Po r m yria m
m e g u s t o s u p a g in a s o b re e s t e p ro g ra m a , q u is ie ra p o r fa vo r s i m e p o d ria n m a n d a r a lg u n o s
p ro g ra m a s e n ja va . . . g ra cia s
p ro g ra m a s ( 1 5 / 1 0 / 2 0 0 2 )
Po r m yria m
m e g u s t o s u p a g in a s o b re e s t e p ro g ra m a , q u is ie ra p o r fa vo r s i m e p o d ria n m a n d a r a lg u n o s
p ro g ra m a s e n ja va . . . g ra cia s
Mu y in t e re s a n t e ( 0 9 / 1 0 / 2 0 0 2 )
Po r Ma n u e l
© 1 9 9 8 - 2 0 0 2 , Ju a n An t o n io Pa lo s ( Ozit o ) y Jo a q u in Bra vo .
Ja va e n ca s t e lla n o .
Mo d e lo Nuestras zonas
re la c io n a l
Au t o r: Cla u d io
Ca s a re s
I n d ic e d e c o n t e n id o s
● In t ro d u cció n
● Pro ce s o d e n o rm a liza ció n
❍ De fin ició n d e la cla ve
❍ Prim e ra fo rm a n o rm a l ( 1 NF)
❍ S e g u n d a fo rm a n o rm a l ( 2 NF)
❍ Te rce ra fo rm a n o rm a l ( 3 NF)
❍ Cu a rt a fo rm a n o rm a l ( 4 NF)
❍ Ot ra s fo rm a s n o rm a le s
● La s in t e rre la cio n e s
❍ In t e rre la cio n e s u n o a u n o
❍ In t e rre la cio n e s u n o a va rio s
❍ In t e rre la cio n e s va rio s a va rio s
❍ Pro b le m a s co n la s in t e rre la cio n e s
❍ At rib u t o s d e la s in t e rre la cio n e s
● Alg e b ra re la cio n a l
❍ Un ió n
❍ In t e rs e cció n
❍ Dife re n cia
❍ Pro d u ct o
❍ S e le cció n
❍ Pro ye cció n
❍ Re u n ió n
❍ Divis ió n
❍ As ig n a ció n
● Cá lcu lo re la cio n a l
❍ Cu a n t ifica d o re s e xis t e n cia le s
❍ Cu a n t ifica d o re s u n ive rs a le s
BUS CO EN TOD A LA W EB ( 1 5 / 1 0 / 2 0 0 2 )
Po r Ca n s a d a
A m e d ia s ( 0 7 / 1 0 / 2 0 0 2 )
Po r Da n ie l
My S QL ( 0 4 / 1 0 / 2 0 0 2 )
Po r An g e l
¿ MyS QL e s u n a b a s e ra la cio n a d a ?
¿ Ha y a lg u n lib ro e n e l m e rca d o s o b re e l t e m a ?
Gra cia s
Re co m e n d a r e s t e t u t o ria l | Es t a d ís t ica s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o Nuestras zonas
avanzado
d e P ro lo g
Au t o r: An g e l
Fe rn á n d e z Pin e d a
I n d ic e d e c o n t e n id o s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Do cu m e n t a ció n | Re cu rs o s | Ta lle r Ja va
Ma n e ja r Co n e x io n e s a Ba s e s d e D a t o s c o n JD BC 3 . 0
Au t o r: IBM
Tra d u c t o r: Ju a n An t o n io Pa lo s ( Ozit o )
I n d ic e d e c o n t e n id o s
● In t ro d u ció n a l Tu t o ria l
❍ ¿ De b e ría le e r e s t e Tu t o ria l?
❍ ¿ S o b re q u é va e s t e Tu t o ria l?
❍ He rra m ie n t a s
● Arq u it e ct u ra d e la Ap lica ció n
❍ Arq u it e ct u ra r Nu e s t ro S is t e m a
❍ El Mo d e lo d e Do s Ca p a s
❍ El Mo d e lo d e n - Ca p a s
● Fu n d a m e n t o s d e lo s Drive rs JDBC
❍ In t ro d u cció n a lo s Drive rs JDBC
❍ Re g is t ra r u n Drive r JDBC
❍ URLs d e Drive rs JDBC
❍ Drive rs d e l Tip o 1
■ Co d ifica ció n p a ra Drive rs d e l Tip o 1
❍ Drive rs d e l Tip o 2
❍ Drive rs d e l Tip o 3
❍ Drive rs d e l Tip o 4
■ Un Eje m p lo Co m p le t o d e Drive r d e l Tip o 4
● Tra n s a cio n e s co n Ba s e s d e Da t o s
❍ Tra n s a cio n e s Bá s ica s
❍ Má s s o b re Tra n s a cio n e s
❍ Nive le s d e Tra n s a ció n
❍ Lo t e s y Tra n s a cio n e s
❍ Co n t ro l Fin o d e la s Tra n s a cio n e s
● Fu e n t e s d e Da t o s
❍ Fu e n t e s d e Da t o s Bá s ica s
❍ Re p a s o Rá p id o d e JNDI
❍ Re g is t ra r u n a Fu e n t e d e Da t o s
❍ Us a r u n a Fu e n t e d e Da t o s
❍ Re - Un ir u n a Fu e n t e d e Da t o s
❍ Bo rra r u n a Fu e n t e d e Da t o s
● Alm a ce n e s d e Co n e xio n e s
❍ ¿ Po r q u é n e ce s it a m o s Alm a ce n e s d e Co n e xio n e s
❍ ¿ Qu é e s u n a Po o le d Co n n e ct io n ?
❍ In icia lia r u n Alm a ce n d e Co n e xio n e s
❍ Us a r u n Alm a ce n d e Co n e xio n e s
● Op t im iza r la s Co m u n ica cio n e s co n Ba s e s d e Da t o s
❍ Mé t o d o s JDBC Da t a S o u rce y Drive r
❍ Mé t o d o s JDBC Co n n e ct io n
Ap p le t ( 1 0 / 1 0 / 2 0 0 2 )
Po r De s p e ra d o
Ho la ,
He e s t a d o s ig u ie n d o e s t e m a n u a l y t o d o p e rfe ct o h a s t a q u e h e q u e rid o p ro b a r e l a cce s o a la b b d d
m e d ia n t e u n a p p le t .
Alg u ie n s e h a e n co n t ra d o co n e s e p ro b le m a ? ?
Me p u e d e a yu d a r? ?
Gra cia s p o r a d e la n t a d o .
Ex c e le n t e ( 0 6 / 0 9 / 2 0 0 2 )
Po r Ga lo
Ba s t a n t e c o m p le t o ( 2 9 / 0 8 / 2 0 0 2 )
Po r Ig n a cio Alcá za r Co n t e ll
Mu y a g ra d e c id o ( 2 8 / 0 8 / 2 0 0 2 )
Po r Jo rg e
© 1 9 9 8 - 2 0 0 2 , Ju a n An t o n io Pa lo s ( Ozit o ) y Jo a q u in Bra vo .
Ja va e n ca s t e lla n o .
Cu rs o d e Nuestras zonas
XML
Au t o r: Jo a q u in
Bra vo Mo n t e ro
I n d ic e d e c o n t e n id o s
● In t ro d u cció n
❍ Oríg e n e s d e l XML
■ HTML
■ XML
■ HTML, XML ve rs u s S GML
❍ Ve n t a ja s d e u t iliza r XML e n la s a p lica cio n e s We b .
■ S e n cille z
■ Va rie d a d d e e s t ru ct u ra s d e d a t o s
❍ Are a s d e a p lica ció n d e l XML
■ Me t a in fo rm a ció n
■ Ba s e s d e d a t o s
■ Me n s a je ría
● Ap lica cio n e s p a ra t ra b a ja r co n XML
❍ Pa rs e rs XML
❍ Bro ws e rs XML
❍ Ed it o re s d e XML y DTDs
❍ Pro ce s a d o re s XS LT
❍ Ot ra s h e rra m ie n t a s
● Ap lica cio n e s q u e u t iliza re m o s d u ra n t e e l cu rs o
● Em p e za n d o a t ra b a ja r co n XML
❍ Ma rca d o y d a t o s
❍ Co m p o n e n t e s d e u n d o cu m e n t o XML
■ Ele m e n t o s
■ At rib u t o s
■ Pró lo g o
■ Ot ra s co n s t ru ccio n e s d e m a rca d o
❍ Do cu m e n t o s b ie n fo rm a d o s y d o cu m e n t o s vá lid o s
● Do cu m e n t o s XML b ie n fo rm a d o s
● La re g la "d o cu m e n t "
❍ Eje rcicio : Do cu m e n t o XML q u e in cu m p le la re g la Do cu m e n t
● S in t a xis co rre ct a y re s t riccio n e s d e b u e n a fo rm a ció n
Bu e n o ( 1 8 / 1 0 / 2 0 0 2 )
Po r THEMAS TER
Ha s t a a h o ra e m p e cé va m o s a ve r s i a p re n d o a lg u it o y p u e d o g a n a r d in e ro co n e s t e n u e vo
co n o cim ie n t o .
Bu e n is im o ( 1 0 / 1 0 / 2 0 0 2 )
Po r Jo rg e
Es t a b u e n o . . .
Alg u n a p e g a t e n ia q t e n e r ( 0 9 / 1 0 / 2 0 0 2 )
Po r Fre d d y
e s t a m u y b u e n o p e ro h a ce fa lt a la o p ció n d e ca rg a .
s i lo h icie ra n s e ria e xce le n t e .
Ag re g a r Op c ió n ( 0 2 / 1 0 / 2 0 0 2 )
Po r Lu is Jo s e
Po r q u e n o a g re g a n u n a o p cio n p a ra la d e s ca rg a co m p le t a * . zip o u n p d f. , lu e g o t o d o e s t a
e xce le n t e .
Re co m e n d a r e s t e t u t o ria l | Es t a d ís t ica s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Do cu m e n t a ció n | Re cu rs o s | Ta lle r Ja va
N e w 2 Ja v a : S u p le m e n t o s
Au t o r: S u n
Tra d u c t o r: Ju a n An t o n io Pa lo s ( Ozit o )
P u e d e s e n c o n t ra r la Ve rs io n Orig in a l e n I n g le s e n (
h t t p :/ / d e v e lo p e r. ja v a . s u n . c o m / d e v e lo p e r/ o n lin e Tra in in g / n e w 2 ja v a / s u p p le m e n t s / )
I n d ic e d e c o n t e n id o s
● S u p le m e n t o Nº 1 d e Ne w 2 Ja va ( Ju l- 2 0 0 1 )
❍ Le n g u a je Ja va Bá s ico
■ Cre a r u n Arra y:
❍ Pro g ra m a Eje rcicio
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ La cla s e S ys t e m Exp lica d a
❍ Un p o co d e Ja va
■ ¿ Qu é e s la Pla t a fo rm a Ja va ?
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 2 d e Ne w 2 Ja va ( Ag o - 2 0 0 1 )
❍ Le n g u a je Ja va Bá s ico
■ Cla s e s , Ob je t o s y Co n s t ru ct o re s . ¿ Cu á l e s la Dife re n cia ?
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ La cla s e Arra yLis t Exp lica d a :
❍ Pro g ra m a Eje rcicio
❍ Un p o co d e Ja va
■ ¿ Po r q u é lo s Arg u m e n t o s d e la Lín e a d e Co m a n d o s n o s o n Te cn o lo g ía 1 0 0 %
Pu ra Ja va ?
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 3 d e Ne w 2 Ja va ( S e p - 2 0 0 1 )
❍ Le n g u a je Ja va Bá s ico
■ S e n t e n cia s if/ e ls e y s wit ch
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ La cla s e S t rin g Exp lica d a
❍ Pro g ra m a Eje rcicio
❍ Un p o co d e Ja va
■ Lo s d o s Tip o s
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 4 d e Ne w 2 Ja va ( Oct - 2 0 0 1 )
❍ Le n g u a je Ja va Bá s ico
■ Co n ve rt ir u n S t rin g a u n Va lo r Nu m é rico
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ La Cla s e Nu m b e rFo rm a t
❍ Pro g ra m a Eje rcicio
❍ Un p o co d e Ja va
■ AWT co n t ra S win g
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 5 d e Ne w 2 Ja va ( No v- 2 0 0 1 )
❍ Le n g u a je Ja va Bá s ico
■ ¿ Có m o u s a r Bu cle s fo r?
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ La Cla s e S t rin g Bu ffe r
❍ Pro g ra m a Eje rcicio
❍ Un p o co d e Ja va
■ At a jo s e n la Pro g ra m a ció n Ja va
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 6 d e Ne w 2 Ja va ( Dic- 2 0 0 1 )
❍ Le n g u a je Ja va Bá s ico
■ Exce p cio n e s y Co m o Ma n e ja rla s
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ File In p u t S t re a m y File Ou t p u t S t re a m
❍ Pro g ra m a Eje rcicio
❍ Un p o co d e Ja va
■ Ja va 2 Pla t fo rm , S t a n d a rd Ed it io n ( J2 S E) ve rs u s Ja va 2 Pla t fo rm , En t e rp ris e
Ed it io n ( J2 EE) ¿ Cu á l e s la Dife re n cia ?
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 7 d e Ne w 2 Ja va ( En e - 2 0 0 2 )
❍ Le n g u a je Ja va Bá s ico
■ Us a r la s Pa la b ra s Cla ve s t h is y s u p e r
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ La Cla s e JFra m e
❍ Pro g ra m a Eje rcicio
❍ Un p o co d e Ja va
■ He re n cia d e Cla s e s
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 8 d e Ne w 2 Ja va ( Fe b - 2 0 0 2 )
❍ Le n g u a je Ja va Bá s ico
■ Ám b it o d e Va ria b le s
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ La s Cla s e s File y Bu ffe re d Re a d e r
❍ Pro g ra m a Eje rcicio
❍ Un p o co d e Ja va
■ Má s At a jo s d e Pro g ra m a ció n
❍ S o lu ció n a l Pro g ra m a d e Eje rcicio
❍ De s ca rg a r la Pla t a fo rm a Ja va 2
● S u p le m e n t o Nº 9 d e Ne w 2 Ja va ( Ma r- 2 0 0 2 )
❍ Le n g u a je Ja va Bá s ico
■ Ca s t in ( Fo rza d o )
❍ En t e n d e r la Lib re ría d e Cla s e s Ja va
■ In t e rfa ce s Co lle ct io n , It e ra t o r, y Lis t
D ES CARGAR JAVA ( 1 9 / 1 0 / 2 0 0 2 )
Po r ION MAÑAS
NECES ITO DES CARGARME EL JAVA. ME LE BAJO YO Y S IEMPRE ME DA ERROR. TENGO WINDOWS
XP. GRACIAS .
Mu c h a s Gra c ia s ( 0 9 / 1 0 / 2 0 0 2 )
Po r Ra ú l
c o m o a s ig n a r u n v a lo r a u n a v a ria b le ( 0 4 / 1 0 / 2 0 0 2 )
Po r fe lip e
e s t o y co n o cie n d o ja va y m e p a re ce m u y in t e re s a n t e
p e ro n o e p o d id o s a b e r co m o ca p t u ro u n va lo r d e t e cla d o , m e g u s t a ria s a b e rlo . . . . . g ra cia s
c u a n d o e s t a rá d is p o n o b le la 4 t a p a rt e ( 1 4 / 0 9 / 2 0 0 2 )
Po r h e rn a n
h a s t a a h o ra m e a p a re cid o u n e xe le n t e t u t o ria l( e l m e jo r) , p e ro q u ie ro s a b e r p o rq u é s e e s t a n t o m a n d o
t a n t o t ie m p o e n la 4 t a p a rt e d e e s t e t u t o ria l d o n d e s e im p le m e n t a n la s d e m a s cla s e s fa lt a n t e s d e la
a p lica cio n d ive lo g
URGEN TE ( 1 1 / 0 9 / 2 0 0 2 )
Po r a n d re w
n e ce s it o s a b e r e n q u e p a g in a p u e d o d e s ca rg a r ja va
p a ra win d o ws e s d e ca ra ct e r URGENTE
GRACIAS . . . . . . . . . . . . . . . . . . . . . .
Re co m e n d a r e s t e t u t o ria l | Es t a d ís t ica s
© 1 9 9 8 - 2 0 0 2 , Ju a n An t o n io Pa lo s ( Ozit o ) y Jo a q u in Bra vo .
Ja va e n ca s t e lla n o .
Cu rs o p rá c t ic o d e Co rb a e n Nuestras zonas
GN U/ Lin u x
Au t o r: Alva ro d e l Ca s t illo
I n d ic e d e c o n t e n id o s
❍ La Im p le m e n t a ció n d e lo s Ob je t o s
❍ El Re p o s it o rio d e Im p le m e n t a cio n e s ( IR)
❍ El Ad a p t a d o r d e Ob je t o s
❍ Co n clu s io n e s
❍ Re fe re n cia s
● Le n g u a je OMG/ IDL
❍ An á lis is d e la a p lica ció n
❍ Es ce n a rio
❍ Ob je t o s d e la a p lica ció n
❍ Dis e ñ o d e la a p lica ció n . In t e rfa ce s IDL
■ In t e rfa z d e l s e rvid o r
■ In t e rfa z d e l clie n t e
■ In t e rfa z d e l o p e ra d o r
■ In t e rfa z co m ú n
❍ Co n clu s io n e s d e A&D
● De s crip ció n d e l le n g u a je OMG/ IDL
❍ De s crip ció n d e l le n g u a je
❍ Mó d u lo s e in t e rfa ce s
❍ Op e ra cio n e s y t ip o s d e d a t o s
❍ Exce p cio n e s
❍ He re n cia
● Tra d u ccio n e s d e OMG/ IDL a C, C+ + y Ja va
❍ Ma p p in g a C
❍ Ma p p in g a C+ +
❍ Ma p p in g a Ja va
❍ Re s u m e n
● Im p le m e n t a ció n d e CORBA 2 . 2 e n Ja va : Ja va ORB
❍ Co n clu s io n e s
❍ Re fe re n cia s
● Un e je m p lo
❍ He rra m ie n t a s n e ce s a ria s
❍ La IDL d e l e je m p lo
● De s a rro llo d e l clie n t e
● El s e rvid o r CORBA
● Im p le m e n t a ció n d e Ca lcu la t o r
❍ Am p lia n d o e l e je m p lo
❍ Co n clu s io n e s d e l d e s a rro llo
❍ Re fe re n cia s
● GNOME y CORBA
❍ In t ro d u cció n
❍ CORBA e n GNOME
❍ La lib re ría d e CORBA d e GNOME: lib g n o rb a
■ In icia liza ció n d e CORBA e n GNOME
■ S e rvid o r d e No m b re s e n GNOME
■ GOAD: De m o n io d e Act iva ció n d e Ob je t o s e n GNOME
■ Co n clu s io n e s d e lib g n o rb a
❍ El e s crit o rio GNOME
● Bo n o b o
❍ El m o d e lo d e co m p o n e n t e s
❍ De s a rro llo d e co m p o n e n t e s
❍ Po r d ó n d e s e g u ir
❍ Co n clu s io n e s
t ie n e n ra z o n ( 2 7 / 0 9 / 2 0 0 2 )
Po r m a rt in
p o r fa vo r. . . h a g a n u n zip o p d f d e e s t e t u t o ria l
Ha g a n u n p d f o z ip ( 1 8 / 0 9 / 2 0 0 2 )
Po r Ma n u G.
Po r fa vo r, p a s e n e l cu rs o a p d f o co m p rím a n lo e n zip .
S o b re Co rb a ( 3 0 / 0 8 / 2 0 0 2 )
Po r s e rg io
¿ Po r q u e d ice s q u e co rb a t ie n e lo s d ia s co n t a d o ?
n o cu e s t io n o t u co m e n t a rio p o r m o le s t a r s i n o p a ra s a b e r s i va le la p e n a e s t u d ia rlo o n o . O
h icis t e s e l co m e n t a rio s o lo p o r m o le s t a r. p o r lo q u e t e p id o , q u e s i a lg u n o d e u s t e d e s t ie n e
a rg u m e n t o s m a s s o lid o s s o b re e l fu t u ro d e co rb a , p o d ria p o n e rlo s co m o co m e n t a rio s , p a ra s a b e r
s i va le la p e n a e s t u d ia rlo .
Ve rd a d ( 1 7 / 0 7 / 2 0 0 2 )
Po r fre d d y re n t e
Es Ve rd a d d e b e h a ce r u n . zip o u n p d f g ra cia s p o r la in fo r.
S u e rt e
Ad h ie ro a l re s t o ( 1 6 / 0 7 / 2 0 0 2 )
Po r Die g o
No s e a n t a n h a ra g a n e s y h a g a n u n zip o p d f.
Re co m e n d a r e s t e t u t o ria l | Es t a d ís t ica s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Sche m a y
D TD s
Au t o r: Ad va n ce d
Qu a lit y S o lu t io n s
I n d ic e d e c o n t e n id o s
● In t ro d u cció n
❍ Ob je t ivo
❍ His t o ria
❍ ¿ QUÉ S ON LAS DTDS ?
❍ ¿ QUÉ ES XML S CHEMA?
● DTD Vs S ch e m a
❍ DTD Vs S ch e m a
● De la s DTDs a l XML S ch e m a
❍ De la s DTDs a l XML S ch e m a
● Ot ra o p ció n : RELAX NG
❍ Re la x NG
● Co n clu s io n e s
❍ Co n clu s io n e s
❍ BIBLIOGRAFÍA
q u ie ro c u rs o s ( 0 5 / 0 6 / 2 0 0 2 )
Po r in m a cu la d a
No h a y a lg u n a fo rm a d e d e s ca rg a rs e lo s cu rs o s co m p le t o s ?
En d a v a n t ! ( 1 6 / 0 4 / 2 0 0 2 )
Po r Me rcè Vá zq u e z
En d a va n t , n o is ! Això e s t à m o lt b é .
Re co m e n d a r e s t e t u t o ria l | Es t a d ís t ica s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Re c u rs o s
Más
Prin cip io Pá g in a
Zo n a d e d o w n lo a d Nuestras zonas
Re co p ila ció n d e lo s t u t o ria le s , a rt ícu lo s , e t c. q u e e s t á n e n n u e s t ra We b y q u e s e p u e d e n
d e s ca rg a r e n fo rm a t o zip . Pa ra p o d e rlo s d e s ca rg a r e s n e c e s a rio e n t ra r c o m o u s u a rio
re g is t ra d o .
Art íc u lo s 2 0 0 0 ( 0 1 / 0 2 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1
5 5 4 1 5 d e s ca rg a s (595277 kb)
To d o s lo s a rt ícu lo s q u e h e m o s p u b lica d o a lo s la rg o d e l 2 0 0 0 e n u n ú n ico fich e ro PDF. In clu ye
t a n t o lo s a rt ícu lo s d e la zo n a p rin cip a l co m o d e ca d a u n a d e la s zo n a s .
On lin e e n : h t t p : / / www. p ro g ra m a cio n . co m
Cu rs o d e Ja v a s c rip t 1 . 2 ( 1 9 / 0 2 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 2
4 1 3 4 9 d e s ca rg a s (83129 kb)
Cu rs o d e Ja va s crip t 1 . 2 d e HTML e n ca s t e lla n o , e n fo rm a t o HTML co m p rim id o e n u n fich e ro
ZIP.
On lin e e n : h t t p : / / h t m l. p ro g ra m a cio n . n e t / js /
Cu rs o d e HTML 4 . 0 ( 1 9 / 0 2 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 3
6 2 5 8 3 d e s ca rg a s (102038 kb)
Cu rs o d e HTML 4 . 0 d e HTML e n ca s t e lla n o , e n fo rm a t o HTML co m p rim id o e n u n fich e ro ZIP.
On lin e e n : h t t p : / / h t m l. p ro g ra m a cio n . n e t / cu rs o /
Cu rs o d e XHTML 1 . 0 ( 1 9 / 0 2 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 4
1 6 0 7 2 d e s ca rg a s (41304 kb)
Cu rs o d e XHTML 1 . 0 d e HTML e n ca s t e lla n o , e n fo rm a t o HTML co m p rim id o e n u n fich e ro ZIP.
On lin e e n : h t t p : / / h t m l. p ro g ra m a cio n . n e t / xh t m l/
I n t ro d u c c ió n a AS P ( 3 0 / 0 3 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 5
2 8 5 7 5 d e s ca rg a s (31661 kb)
Cu rs o d e in ica ció n a la t e cn o lo g ía AS P: s u s re q u is it o s t é cn ico s , lo s t ip o s d e e le m e n t o s q u e
co m p o n e n la s p á g in a s AS P y s u co rre ct a u t iliza ció n .
On lin e e n : h t t p : / / a s p . p ro g ra m a cio n . n e t / t u t o ria le s / a s p _ b a s ics
VBS CRI P T ( 3 0 / 0 3 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 9
2 1 4 8 1 d e s ca rg a s (140835 kb)
AS P y W AP ( 3 0 / 0 3 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 8
1 6 3 4 5 d e s ca rg a s (283124 kb)
Im p le m e n t a ció n d e u n a a p lica ció n WAP u t iliza n d o t e cn o lo g ía AS P.
On lin e e n : h t t p : / / a s p . p ro g ra m a cio n . n e t / t u t o ria le s / a s p ywa p /
S e rv le t s y JS P ( 1 3 / 0 5 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 2
2 8 7 0 4 d e s ca rg a s (689991 kb)
Lo s S e rvle t s s o n la s re s p u e s t a d e la t e cn o lo g ía Ja va a la p ro g ra m a ció n CGI. S o n p ro g ra m a s
q u e s e e je cu t a n e n u n s e rvid o r We b y co n s t ru ye n p á g in a s We b . Ja va S e rve r Pa g e s ( JS P) e s
u n a t e cn o lo g ía q u e n o s p e rm it e m e zcla r HTML e s t á t ico co n HTML g e n e ra d o d in á m ica m e n t e
m e d ia n t e co d ig o ja va .
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / s e rvle t s _ js p
Ap i Ja v a Ma il ( 0 1 / 0 6 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 3
1 7 0 2 4 d e s ca rg a s (109708 kb)
In t ro d u cció n a l API Ja va Ma il p a ra e n via r y re cib ir e - m a ils d e s d e p ro g ra m a s Ja va
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / ja va m a il/
Tu t o ria l d e in t ro d u c c io n a Ja v a ( 0 7 / 0 5 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 0
3 3 5 1 5 d e s ca rg a s (64439 kb)
Tu t o ria l d e in t ro d u cció n a Ja va .
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / in t ja va /
Ja v a : P ro g ra m a c ió n e n Re d ( 1 3 / 0 5 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 1
2 1 6 8 8 d e s ca rg a s (43881 kb)
Tu t o ria l s o b re p ro g ra m a ció n e n Re d u t iliza n d o Ja va .
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t /
Cu rs o d e Fro n t P a g e 2 0 0 0 ( 0 5 / 0 6 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 5
1 6 7 9 0 d e s ca rg a s (1013206 kb)
Cu rs o co m p le t o d e cre a ció n d e p á g in a s we b co n Fro n t Pa g e 2 0 0 0 , e n fo rm a t o Wo rd .
On lin e e n : h t t p : / / h t m l. p ro g ra m a cio n . n e t / fro n t p a g e /
P rim e ra t a z a e n Ja v a ( 2 3 / 0 6 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 6
3 2 5 8 9 d e s ca rg a s (146 kb)
Fich e ro PDF d e u n a p re s e n t a ció n m u y g rá fica d e lo s p rim e ro s p a s o s e n Ja va p a ra la s
p la t a fo rm a s Win d o ws , UNIX/ Lin u x y MAC OS .
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / p rim e ra _ t a za / in d e x. p h p
Tu t o rJa v a n iv e l b á s ic o ( 2 3 / 0 6 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 7
3 8 7 6 8 d e s ca rg a s (389 kb)
Fich e ro PDF d e u n a ce rca m ie n t o a lo s co n ce p t o s b á s ico s s o b re Ob je t o s , Cla s e s e In t e rfa ce s ,
a s í co m o la e xp lica ció n d e lo s p rin cip a le s p a q u e t e s Ja va .
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / ja va _ b a s ico / in d e x. p h p
Ma n e jo d e Erro re s Ut iliz a n d o Ex c e p c io n e s Ja v a ( 2 3 / 0 6 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 8
2 3 6 0 6 d e s ca rg a s (132 kb)
In t ro d u cció n a la s e xce p cio n e s e n e l le n g u a je Ja va . Ma n e jo y co n t ro l d e e rro re s . En PDF.
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / e xce p cio n e s / in d e x. p h p
Tra b a jo e n Re d ( 0 4 / 0 9 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 1 9
1 5 4 4 0 d e s ca rg a s (273 kb)
In icio a la p ro g ra m a ció n e n Re d e n e l le n g u a je Ja va , in clu ye n d o S o cke t s , Da t a g ra m a s , e t c. e n
fo rm a t o PDF co n lo s fich e ro s fu e n t e a d ju n t a d o s
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / re d / in d e x. p h p
S e rv le t s ( 0 4 / 0 9 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 2 0
2 1 3 6 1 d e s ca rg a s (219 kb)
In icio a la p ro g ra m a ció n d e s e rvle t s e n le n g u a je Ja va , in clu ye n d o la s p a rt e s b á s ica s p a ra
co m u n ica r p ro g ra m a s clie n t e / s e rvid o re s . Fo rm a t o PDF co n lo s fich e ro s fu e n t e a d ju n t a d o s
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / s e rvle t s _ b a s ico / in d e x. p h p
Ja v a N a t iv e I n t e rfa c e ( JN I ) ( 0 4 / 0 9 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 2 1
1 1 9 4 3 d e s ca rg a s (220 kb)
Exp lica ció n d e co m o co m u n ica r p ro g ra m a s e s crit o s e n Ja va co n p ro g ra m a s e s crit o s e n o t ro s
le n g u a je s co m o C+ + . . . Fo rm a t o PDF co n lo s fich e ro s fu e n t e a d ju n t a d o s
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / jn i/ in d e x. p h p
I n v o c a c ió n Re m o t a d e Mé t o d o s ( RMI ) ( 0 4 / 0 9 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 2 2
1 2 0 5 9 d e s ca rg a s (117 kb)
Exp lica e l m o d o d e lla m a r a m é t o d o s d e o t ra s a p lica cio n e s q u e s e e s t á n e je cu t a n d o e n o t ra s
m á q u in a s d e la re d . ( p ro g ra m a ció n d is t rib u id a )
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / rm i/ in d e x. p h p
Be a n s ( b á s ic o ) ( 0 4 / 0 9 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 2 3
1 5 2 8 8 d e s ca rg a s (197 kb)
In t ro d u cció n a lo s co m p o n e n t e s re u t iliza b le s ( Be a n s ) e n Ja va
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / b e a n s / in d e x. p h p
Grá fic o s e n Ja v a 2 D ( 0 4 / 0 9 / 2 0 0 1 )
h t t p : / / www. p ro g ra m a cio n . n e t / d o wn lo a d . p h p ? id = 2 4
2 0 6 9 9 d e s ca rg a s (856 kb)
Pro g ra m a ció n d e g rá fico s e n 2 D, u t iliza n d o lo s n u e vo s APIs q u e la p la t a fo rm a Ja va p re s e n t a a
p a rt ir d e l JDK 1 . 2 .
On lin e e n : h t t p : / / ja va . p ro g ra m a cio n . n e t / 2 d / in d e x. p h p
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Jo a q u in Bra vo , Da n ie l Ro d rig u e z, Da vid Ca rre ro y Ale x Mo ra le s
Pro g ra m a ció n e n ca s t e lla n o .
Cu rs o s Nuestras zonas
1 0 8 cu rs o s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Ba s e s d e d a t o s ( 5 )
● En t o rn o s d e d e s a rro llo ( 1 )
● He rra m ie n t a s ( 2 )
● In t e rn e t ( 2 6 )
● Le n g u a je s d e s crip t ( 4 )
● Le n g u a je s o rie n t a d o s a o b je t o ( 6 5 )
● Ot ro s le n g u a je s ( 3 )
● S is t e m a s o p e ra t ivo s ( 1 )
● Te o ría ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
● Ba s e s d e d a t o s ( 2 )
● En t o rn o s d e d e s a rro llo ( 2 )
● He rra m ie n t a s ( 2 )
● In t e rn e t ( 5 0 )
● Le n g u a je s d e s crip t ( 2 3 )
● Le n g u a je s im p e ra t ivo s ( 1 )
● Le n g u a je s o rie n t a d o s a o b je t o ( 2 7 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo rm a c ió n e n la Re d Nuestras web
De s d e e s t a p á g in a p o d ra s a cce d e r a cu rs o s d e fo rm a ció n e n in fo rm á t ica y n u e va s t e cn o lo g ía s .
Cib e ra u la
BI T
CARRERAS 2 0 0 2
Co n d icio n e s d e la o fe rt a
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 1 , Jo a q u in Bra vo , Da n i Ro d rig u e z, Da vid Ca rre ro y Ale x Mo ra le s
Pro g ra m a ció n e n ca s t e lla n o .
Fo ro s d e Nuestras zonas
de ba te
Bu s ca r: Dale
Fo ro Me n s a je s Últ im o m e n s a je
AS P 1929 1 9 d e o ct u b re d e 2 0 0 2
Ba s e s d e d a t o s y S QL 655 1 8 d e o ct u b re d e 2 0 0 2
C / C+ + 372 1 9 d e o ct u b re d e 2 0 0 2
Ge n e ra l 316 1 7 d e o ct u b re d e 2 0 0 2
HTML 1001 1 7 d e o ct u b re d e 2 0 0 2
Ja va ( b á s ico ) 2515 2 0 d e o ct u b re d e 2 0 0 2
Ja va ( S e rvle t s y JS P) 902 1 9 d e o ct u b re d e 2 0 0 2
Ja va y XML 181 1 7 d e o ct u b re d e 2 0 0 2
Ja va s crip t 719 1 0 d e o ct u b re d e 2 0 0 2
Pe t ició n d e fo ro s n u e vo s 227 1 9 d e o ct u b re d e 2 0 0 2
PHP 645 1 9 d e o ct u b re d e 2 0 0 2
Vis u a l Ba s ic 473 2 0 d e o ct u b re d e 2 0 0 2
XML 180 1 7 d e o ct u b re d e 2 0 0 2
Qu e lo s d is fru t e s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
<?
//Abrimos la conexión
$Conexion = fsockopen("programacion.com","25");
//Esta es la cadena que dice "Hola". Fíjate en en \r\n final que marca
//un "Enter", para confirmar el comando
$str_hola = "EHLO programacion.com\r\n";
$str_recibimos = fgets($Conexion,256);
echo "<pre>";
print_r($str_recibimos);
echo "</pre>";
?>
Co m a n d o s S MTP y re s p u e s t a s d e l s e rv id o r
A co n t in u a ció n , m u e s t ro u n a lis t a d e co m a n d o s S MTP ju n t o co n s u s ig n ifica d o .
Co m a n d o S ig n ific a d o
Ho la s e n cillo . Es e l m o d o m á s a n t ig u o y s e g u ro d e d e cir "h o la ". S i
HELO e l s e rvid o r e s ca p a z d e re s p o n d e r a é l, s o p o rt a la s
fu n cio n a lid a d e s b á s ica s q u e va m o s a ve r e n e s t e t u t o ria l.
Ho la e xt e n d id o . Es e l m o d o d e d e cirle h o la a l s e rvid o r m á s
m o d e rn o . S i e s ca p a z d e re s p o n d e r, s ig n ifica q u e p o s e e m u ch a s
EHLO m á s ca ra ct e rís t ica s q u e s i s o lo p u d ie s e re s p o n d e r a HELO.
Mu ch a s d e e lla s s o n m u y a va n za d a s y n o la s va m o s a ve r e n e s t e
t u t o ria l.
Co n e s t e co m a n d o s e e s p e cifica d e q u ié n p ro vie n e e l co rre o a
MAI L FROM: e n via r. A m e n u d o e l d o m in io h a d e s e r u n o vá lid o , p u e s cie rt o s
c o rre o @d o m in io s e rvid o re s co m p ru e b a n la e xis t e n cia d e l m is m o , d e vo lvie n d o u n
m e n s a je d e e rro r s i n o p u e d e n s e r id e n t ifica d o s .
Co n e s t e co m a n d o s e e s p e cifica e l re ce p t o r ( o re ce p t o re s , p u e s e l
co m a n d o p u e d e s e r re p e t id o t a n t a s ve ce s co m o re ce p t o re s
h a ya ) , d e l m e n s a je e n via d o . Es im p o rt a n t e t e n e r e n cu e n t a q u e
cie rt o s s e rvid o re s p o s e e n u n a t a b la d e d o m in io s a lo s q u e p u e d e n
RCP T TO: e n t re g a r e l co rre o . Po r e je m p lo , m u ch a g e n t e co n fig u ra e l
c o rre o @d o m in io s e rvid o r p a ra q u e s o lo p u e d a a d m it ir co rre o p a ra la m á q u in a ,
re ch a za n d o t o d a s la s o t ra s d ire ccio n e s cu yo s re g is t ro s DNS n o s e
e n cu e n t re n e n la m is m a . Co m o re g la g e n e ra l, e s s e g u ro u s a r e l
s e rvid o r d e co rre o d e l d o m in io a l cu a l p e rt e n e ce e l co rre o d e la
p e rs o n a a la q u e va d irig id a e l m e n s a je .
Es t e co m a n d o , p e s e a s u a p a rie n cia co m p le ja , n o lo e s t a n t o e n
re a lid a d . Prim e ro va la p a la b ra cla ve DATA, q u e in d ica a l s e rvid o r
d e co rre o q u e s e in icia la t ra n s fe re n cia d e lo s d a t o s d e l co rre o e n
s i. Tra s e s t a s e n t e n cia , y, a n t e s d e l co rre o , p o d e m o s in clu ir
D ATA\ r\ n
ca b e ce ra s , s ie n d o la m á s co m ú n S u b je ct : , p a ra in d ica r e l t e m a .
( S u b je c t : \ r\ n )
Tra s t o d o e l m e n s a je , d e b e e s crib irs e \ r\ n . \ r\ n . S i e s o e s . Un
\ r\ n . \ r\ n
"En t e r", s e g u id o d e u n p u n t o y o t ro "En t e r". As í s e le d ice a l
s e rvid o r q u e e l m e n s a je h a t e rm in a d o . Un a ve z p u ls e m o s e l
ú lt im o "En t e r", e l m e n s a je s e rá e n via d o a la co la d e p ro ce s o , lis t o
p a ra s u e n t re g a .
Có d ig o S ig n ific a d o
No im p le m e n t a d o . Es e l e rro r q u e d e vu e lve cu a n d o u n o d e lo s
502 co m a n d o s n o e s t á im p le m e n t a d o e n e l s e rvid o r. Po r e je m p lo ,
p ro g ra m a cio n . co m re s p o n d e 5 0 2 a EHLO.
To d o co rre ct o . El co m a n d o in t ro d u cid o h a fu n cio n a d o
co rre ct a m n t e y la a cció n re q u e rid a h a s id o re a liza d a s in
250
p ro b le m a s . Ta m b ié n e s lo q u e d e vu e lve e l s e rvid o r cu a n d o u n
m e n s a je h a s id o e n via d o co rre ct a m e n t e a la co la d e p ro ce s o .
El Re cip ie n t e d e l m e n s a je ( RCPT TO: ) , n o e s t á in clu id o e n la lis t a
553 d e d o m in io s a lo s q u e e l s e rvid o r e s t é co n fig u ra d o p a ra e n t re g a r
e l co rre o .
S ig u e a d e la n t e e n via n d o e l m e n s a je . Es t o e s lo q u e d e vu e lve e l
354
s e rvid o r t ra s in t ro d u cirle co rre ct a m e n t e la p a la b ra DATA.
221 S ig n ifica "Ad io s " e n la je rg a S MTP
MAIL FROM:flipis@flipis.net
250 ok
RCPT TO:multivac@internautas.org
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
RCPT TO:info@programacion.com
250 ok
DATA
354 go ahead
Subject: Esto es una prueba del webmaster de la seccion de php fLIPIS
Este es el mensaje de prueba
.
250 ok 1033728059 qp 1944
quit
221 Goodbye
Es c rib ie n d o la c la s e S MTP
Lle g a d o s a e s t e p u n t o , h e m o s vis t o cu a l e s la s e cu e n cia d e co m a n d o s n e ce s a ria p a ra m a n d a rle a l
s e rvid o r lo q u e n o s h a ce fa lt a p a ra e n via r u n co rre o s e n cillo , d e s o lo t e xt o . Da d o q u e e l có d ig o d e la
cla s e e s co n s id e ra b le m e n t e la rg o , n o lo in clu yo a q u í. De s ca rg a d lo e n e l s g u ie n t e lin k. Ha y d o s
s crip t s , u n o d e e je m p lo y o t ro q u e e s la cla s e e n s i.
De s ca rg a t e lo s fich e ro s d e l a rt ícu lo
Do cu m e n t a ció n | Re cu rs o s | Ta lle r Ja va
Ta lle r Ja v a . D e s p le g a r S e rv le t s y Ap lic a c io n e s W e b e n To m c a t
y W e b Lo g ic S e rv e r
Au t o r: S u n
Tra d u c t o r: Ju a n An t o n io Pa lo s ( Ozit o )
I n t ro d u c c ió n
En e s t e a rt ícu lo re vis a re m o s lo s p a s o s im p lica d o s e n e l d e s p lie g u e d e u n s e rvle t , d e s crib e có m o t o m a r
u n s e rvle t y cre a r u n a a p lica ció n We b - t a n t o e n fo rm a t o e xp a n d id o co m o e n u n WAR. Ilu s t ra có m o
d e s p le g a r u n a a p lica ció n We b e n Ap a ch e To m ca t y e n We b Lo g ic S e rve r 6 . 0 , u n co m p le t o s e rvid o r d e
a p lica cio n e s J2 EE.
D e s a rro llo d e S e rv le t s
Lo s s e rvle t s fu e ro n d is e ñ a d o s p a ra p e rm it ir la e xt e n s ió n d e u n s e rvid o r p ro p o rcio n a n d o cu a lq u ie r
s e rvicio . S in e m b a rg o , a ct u a lm e n t e s ó lo s e s o p o rt a n HTTP y p á g in a s JS P. En e l fu t u ro , u n d e s a rro lla d o r
p o d ría e xt e n d e r u n s e rvid o r FTP o u n s e rvid o r S MTP u s a n d o s e rvle t s .
S e rv le t s Ge n é ric o s
http://www.programacion.com/java/articulo.desp_servlets.html (1 de 12) [20/10/2002 18:15:38]
Java en castellano. Desplegar Servlets y Aplicaciones Web en Tomcat y WebLogic Server
● init():
De fin e cu a lq u ie r có d ig o d e in icia liza ció n q u e d e b e ría e je cu t a rs e cu a n d o s e
ca rg a e l s e rvle t e n m e m o ria .
● service():
El m é t o d o p rin cip a l, lla m a d o cu a n d o e l s e rvle t re cib e u n a s o licit u d d e s e rvicio .
De fin e u n p a q u e t e d e ló g ica d e p ro ce s a m ie n t o p ro p o rcio n a d o p o r e l s e rvle t .
● destroy():
De fin e cu a lq u ie r có d ig o d e lim p ie za re q u e rid o a n t e s d e e lim in a r e l s e rvle t d e
la m e m o ria .
S e rv le t s HTTP
1 . Im p o rt a r co m o m ín im o la s cla s e s s e rvle t s :
❍javax.servlet.ServletException
❍ javax.servlet.http.HttpServlet
❍ javax.servlet.http.HttpServletRequest
❍ javax.servlet.http.HttpServletResponse
2 . Ha ce r la cla s e public
3 . Ha ce r q u e la cla s e e xt ie n d a HttpServlet
4 . S o b re e s crib ir lo s m é t o d o s doXXX() a p ro p ia d o s p a ra im p le m e n t a r n u e s t ra
ló g ica d e s o licit u d / re s p u e s t a . .
Un S e rv le t d e Eje m p lo : Re q u e s t D e t a ils
package org.stevengould.javaworld;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* This class provides a simple example of a servlet, and
* illustrates some of the information available from an
* HTTP request.
*/
public class RequestDetails extends HttpServlet {
/**
* Handler for all GET requests. We simply dump out the
* requestheader information, followed by the body of
* the request.
* @param request the HTTP request submitted to the
* server for processing. It is this object that
* contains the details of the requested URL, and
out.println(" </tr>");
out.println(" <tr>");
out.println(" <td bgcolor=#e0e0e0>PathInfo:</td>");
out.println(" <td>"+request.getPathInfo()+"</td>");
out.println(" </tr>");
out.println(" <tr>");
out.println(" <td bgcolor=#e0e0e0>Remote Address:</td>");
out.println(" <td>"+request.getRemoteAddr()+"</td>");
out.println(" </tr>");
out.println("</table>");
out.println("<hr>");
Date date = new Date();
out.println("<p align=center>Page generated on "+date);
out.println("</body>");
out.println("</html>");
out.close();
}
/**
* For POST requests, we will simply perform the same
*operations as for GET requests. The best way to do this
* is to simply invoke the doGet() method with the appropriate
* parameters.
* @param request the HTTP request submitted to the server
* for processing. It is this object that contains
* the details of the requested URL, and it is the
* details of this object that we output as a
* response.
* @param response the response object to be used to send a
* result back to the client.
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doGet(request, response);
}
}
Co m p ila r e l S e rv le t
javac RequestDetails.java
Cre a r u n a Ap lic a c ió n W e b
No ta :
Un a a p lica ció n We b e s u n a co le cció n d e s e rvle t s , p á g in a s HTML, cla s e s , y o t ro s re cu rs o s q u e s e
p u e d e n e m p a q u e t a r y e je cu t a r e n va rio s co n t e n e d o re s d e d is t in t o s ve n d e ro re s .
.../WEB-INF
|--
classes
|--
com
|--
mycompany
|--
myproject
<web-app>
</web-app>
<servlet>
<servlet-name>nombre</servlet-name>
<servlet-class>package.nombre.MiClass</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>nombre</servlet-name>
<url-pattern>pattern</url-pattern>
</servlet-mapping>
<web-app>
<servlet>
<servlet-name>RequestDetails</servlet-name>
<servlet-class>org.stevengould.javaworld.RequestDetails</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RequestDetails</servlet-name>
<url-pattern>SampleServlet</url-pattern>
</servlet-mapping>
</web-app>
Co m o p u e d e s ve r e n la e t iq u e t a d e m a p e o , h e m o s e le g id o la URL /SampleServlet p a ra m a p e a r n u e s t ro
s e rvle t RequestDetails.
Cre a r W ARs
D e s p le g a r Ap lic a c io n e s W e b e n To m c a t 3 . 2
To m ca t 3 . 2 s irve co m o im p le m e n t a ció n d e re fe re n cia p a ra la e s p e cifica ció n Ja va S e rvle t 2 . 2 . Pa ra e l
p ro p ó s it o d e e s t e a rt ícu lo h e m o s a s u m id o q u e e s t á s u s a n d o To m ca t 3 . 2 . 1 o p o s t e rio r.
/opt/jakarta-tomcat-3.2.1/webapps/ROOT/
C:\Program Files\Jakarta-Tomcat-3.2.1\webapps\ROOT\
P ro b a r e l S e rv le t
http://:/
Do n d e :
To m ca t . Po d e m o s u s a r localhost s i e l n a ve g a d o r s e e s t á e je cu t a n d o s o b re
la m is m a m á q u in a q u e To m ca t .
● port e s e l p u e rt o e n e l q u e e s cu ch a To m ca t . Po r d e fe ct o , e s e l p u e rt o 8 0 8 0 .
● servletName e s e l n o m b re d e l s e rvle t q u e q u e re m o s in vo ca r. De b e ría
co rre s p o n d e r a l va lo r co n t e n id o e n la s e t iq u e t a s <url-pattern></url-
pattern> d e l fich e ro d e s crip t o r d e d e s p lie g u e .
Po r e je m p lo , s i To m ca t s e e s t á e je cu t a n d o e n la m is m a m á q u in a q u e e l n a ve g a d o r y e s t á e s cu ch a n d o e l
p u e rt o p o r d e fe ct o ( 8 0 8 0 ) , p o d e m o s p ro b a r n u e s t ro s e rvle t d e e je m p lo RequestDetails ( q u e e s t á
m a p e a d o a la URL SampleServlet) a b rie n d o la s ig u ie n t e URL:
http://localhost:8080/SampleServlet
D e s p le g a r Ap lic a c io n e s W e b e n W e b Lo g ic S e rv e r 6 . 0
Au n q u e We b Lo g ic S e rve r 5 . 1 fu e la p rim e ra ve rs ió n d e We b Lo g ic S e rve r e n p ro p o rcio n a r s o p o rt e p a ra
la e s p e cifica ció n Ja va S e rvle t 2 . 2 y a p lica cio n e s We b , We b Lo g ic S e rve r 6 . 0 t ie n e a lg u n a s m e jo ra s
im p o rt a n t e s q u e s im p lifica n e l d e s p lie g u e d e a p lica cio n e s We b ( t a n t o e n fo rm a t o e xp a n d id o co m o
e m p a q u e t a d a s co m o u n fich e ro WAR) .
D e s p le g a r W ARs Us a n d o la Co n s o la
Co n n u e s t ro e je m p la r d e We b Lo g ic S e rve r e je cu t á n d o s e , a rra n ca m o s la W e b Lo g ic S e rv e r Co n s o le .
As u m ie n d o u n a in s t a la ció n p o r d e fe ct o , la co n s o la s e p u e d e t ra e r d e s d e la m á q u in a localhost a b rie n d o
la s ig u ie n t e URL e n u n n a ve g a d o r We b :
http://localhost:7001/console
1 . Pu ls a m o s s o b re le n o d o W e b Ap p lic a t io n s e n e l p a n e l izq u ie rd o d e la
Co n s o la .
2 . En e l p a n e l d e re ch o , p u ls a m o s "I n s t a ll a n e w W e b Ap p lic a t io n . . . "
3 . Te cle a m o s e l p a t h co m p le t o y e l n o m b re d e fich e ro d e n u e s t ro WAR, o
u s a m o s e l b o t ó n Bro w s e . . . p a ra lo ca liza rlo .
4 . Pu ls a m o s e l b o t ó n Up lo a d .
D e s p le g a r Ap lic a c io n e s W e b Ma n u a lm e n t e
No rm a lm e t n e cu a n d o u n o p ie n s a e n h a ce r la s t a re a s m a n u a lm e n t e , o a m a n o , la re a cció n a u t o m á t ica
e s e s p e ra r q u e la t a re a s e a u n p o q u it o m á s co m p lica d a q u e s u e q u iva le n t e a u t o m á t ico . En e l ca s o d e
d e s p le g a r a p lica cio n e s We b b a jo We b Lo g ic S e rve r 6 . 0 , la a p ro xim a ció n m a n u a l e s t a n fa cíl, s i n o m á s ,
q u e u t iliza r la Co n s o la .
P ro b a r e l S e rv le t
http://:/
Do n d e :
Po r e je m p lo , s i We b Lo g ic S e rve r s e e s t á e je cu t a n d o e n la m is m a m á q u in a q u e e l n a ve g a d o r y e s t á
e s cu ch a n d o e l p u e rt o p o r d e fe ct o ( 7 0 0 1 ) , p o d e m o s p ro b a r n u e s t ro s e rvle t d e e je m p lo RequestDetails
( q u e e s t á m m a p e a d o a la URL SampleServlet) a b rie n d o la s ig u ie n t e URL:
http://localhost:7001/SampleServlet
Re c o n fig u ra r Ap lic a c io n e s W e b
© 1 9 9 8 - 2 0 0 2 , Ju a n An t o n io Pa lo s ( Ozit o ) y Jo a q u in Bra vo .
Ja va e n ca s t e lla n o .
Ta lle r P HP . P HP y fu n c io n e s FTP
Au t o r: Ale ja n d ro Alm u n ia
Us a n d o la s fu n c io n e s FTP m á s s im p le s
Pa ra e s t e e je m p lo , va m o s a u s a r u n p o co d e có d ig o fu e n t e co m e n t a d o . Cre o q u e e s b a s t a n t e
e xp lica t ivo p o r s i m is m o .
<?
//Conectamos al host
$FtpConn = ftp_connect("ftp.cdrom.com");
echo "<pre>";
print_r($lista);
echo "</pre>";
//Mostramos su contenido
echo "<B><CENTER>CONTENIDOS DEL DIRECTORIO /pub</CENTER></B>";
echo "<pre>";
print_r($list);
echo "</pre>";
//Tansferimos un fichero
if(!ftp_get($FtpConn,"test.txt","test.txt",FTP_BINARY)){
echo "Imposible recuperar fichero test.txt";
exit;
}
/*
*/
?>
P a ra b e n jo ( 1 9 / 1 0 / 2 0 0 2 )
Po r Vict o r
Re d e s - Lin u x, la we b d e re d e s b a jo lin u x.
u n a a y u d a e n g ra fic o s e n P HP ( 1 6 / 1 0 / 2 0 0 2 )
Po r b e n jo
h o la q u e t a l n e ce s it o a yu d a t e n g o q u e m o s t ra r d a t o s e n t o rt a s y b a rra s e n PHP p o r fa vo r m e
p u e d e n a yu d a r. . .
g ra cia s . . . .
Me h a re s u lt a d o m u y u t il ( 1 3 / 1 0 / 2 0 0 2 )
Po r m a n u e l
Me h a re s u lt a d o m u y u t il e s t e a rt icu lo . Es ju s t o lo q u e e s t a b a b u s ca n d o , p a ra t e rm in a r u n
p ro g ra m illa q u e e s t a b a re a liza n d o .
Un s a lu d o .
Re co m e n d a r e s t e t u t o ria l | Es t a d ís t ica s
<?
#Cerramos el fichero
fclose($DescriptorFichero);
?>
$DescriptorFichero = fopen("fichero_prueba.txt","w");
Mo d o d e
Qu é s ig n ific a
a p e rt u ra
Mo d o d e s o lo le ct u ra . S e a b re e l fich e ro y e l
r cu rs o r s e co lo ca a l p rin cip io d e l m is m o ,
p e rm it ie n d o le e rlo h a s t a e l fin a l.
Mo d o d e le ct u ra / e s crit u ra . S e a b re e l fich e ro y e l
r+ cu rs o r s e co lo ca a l p rin cip io d e l
m is m o , p e rm it ie n d o le e r o e s crib ir e n e l fich e ro .
Mo d o d e s o lo e s crit u ra . S e cre a e l fich e ro s i n o
e xis t ie s e , y, s i e xis t e , s e b o rra t o d o s u
w
co n t e n id o , s e s it ú a e l cu rs o r a l p rin cip io d e l
fich e ro p e rm it ie n d o n o s e s crib ir.
Mo d o d e e s crit u ra / le ct u ra . S i e l fich e ro n o e xis t e ,
s e cre a , y, s i e xis t ie s e , s e b o rra t o d o s u
w+
co n t e n id o , s e s it ú a e l cu rs o r a l p rin cip io d e l
fich e ro p e rm it ié n d o n o s e s crib ir y le e r.
Mo d o d e a ñ a d id o . Ab re e l fich e ro , s it ú a e l cu rs o r
a l fin a l d e l m is m o y p e rm it e e s crib ir. S i e l fich e ro
a
n o e xis t e , lo cre a , p e ro , e n ca s o d e e xis t ir, n o
b o rra s u co n t e n id o .
Mo d o d e a ñ a d id o / le ct u ra . S it ú a e l cu rs o r a l fin a l
d e l fich e ro y p e rm it e e s crib ir y le e r. S i e l fich e ro
a+
n o e xis t e , lo cre a , p e ro , s i e xis t e , n o b o rra s u
co n t e n id o .
As í p u e s , e s t o s s o n lo s s e is m o d o s d e a b rir u n fich e ro . Va m o s a h o ra a ve r u n e je m p lo e n có d ig o d e l u s o d e
lo s m is m o s . El s ig u ie n t e s crip t va a h a ce r la s s ig u ie n t e s t a re a s :
e s c rib ir2 . p h p
<?
#Cerramos el fichero
fclose($DescriptorFichero);
$Descriptor2 = fopen("fichero_prueba.txt","a");
#Cerramos el fichero
fclose($Descriptor2);
?>
le e r. p h p
<?
?>
le e r_ w p lu s . p h p
<?
$buffer = fgets($Descriptor2,4096);
echo $buffer."<BR>";
#Cerramos el fichero
fclose($Descriptor2);
?>
Co m o vé is , a l e je cu t a rlo , e l re s u lt a d o e s e l s ig u ie n t e :
le e r_ rp lu s . p h p
<?
$buffer = fgets($Descriptor2,4096);
echo $buffer."<BR>";
#Cerramos el fichero
fclose($Descriptor2);
?>
le e r_ a p lu s . p h p
<?
#Abrimos el fichero en modo w+
$Descriptor1 = fopen("nuevo_fichero.txt","w+");
$buffer = fgets($Descriptor2,4096);
echo $buffer."<BR>";
#Cerramos el fichero
fclose($Descriptor2);
?>
Es t o e s t o d o e n cu a n t o a m o d o s d e a p e rt u ra . En la s ig u ie n t e s e cció n va m o s a ve r co m o s u b ir fich e ro s a l
s e rvid o r, a lg o m u y ú t il cu a n d o s e t ra t a d e p á g in a s we b .
S u b ir fic h e ro s a l s e rv id o r
Pa ra e je m p lifica r la s u b id a d e a rch ivo s a l s e rvid o r, va m o s a ve r u n s crip t d e e je m p lo . El s crip t t ie n e d o s
p a rt e s ; la p rim e ra , e l fo rm u la rio , e n e l q u e s e in t ro d u ce e l fich e ro a ca rg a r, y la s e g u n d a p a rt e , e n la q u e s e
p ro ce s a la s u b id a y s e in fo rm a a l u s u a rio d e l é xit o o fra ca s o d e la ca rg a .
u p lo a d . p h p
<?
if(!isset($cargar)){
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>:: Formulario de carga de ficheros ::</TITLE>
</HEAD>
<BODY>
<TR>
<TD ALIGN="LEFT"><INPUT TYPE="FILE" NAME="elFichero"></INPUT></TD>
</TR>
<TR>
<TD ALIGN="LEFT"><INPUT TYPE="SUBMIT" VALUE="Subir el fichero">
</TR>
</TABLE>
</FORM></BODY></HTML>
<?
#Lo copiamos
if(!copy($elFichero,$nuevositio)){
echo "NO SE HA PODIDO SUBIR EL FICHERO";
}
else{
echo "FICHERO SUBIDO CON ÉXITO";
}
?>
u p lo a d _ m u lt ip le . p h p
<?
$txt ="<HTML><HEAD>\n";
$txt.="<TITLE>:: ¿Cuántos ficheros quiere subir hoy? ::</TITLE>\n";
$txt.="</HEAD><BODY>\n";
$txt.="<FORM NAME=\"frmNumFicheros\"
METHOD=\"POST\"
ACTION=\"".$PHP_SELF."?fich=1\">\n";
$txt.="<BR><BR><BR><BR>\n";
$txt.="<DIV ALIGN=\"CENTER\">\n";
$txt.="<INPUT TYPE=\"TEXT\" NAME=\"numFicheros\">\n";
$txt.=" ";
$txt.="<B>Introduce el número de ficheros</B>\n";
$txt.="<BR><BR>\n";
$txt.="<INPUT TYPE=\"SUBMIT\"
VALUE=\"Mostrar campos para subir ficheros\">\n";
$txt.="<BR></DIV>\n";
$txt.="</FORM></BODY></HTML>\n";
echo $txt;
}
$txt ="<HTML><HEAD>\n";
$txt.="<TITLE>:: ¿Cuántos ficheros quiere subir hoy? ::</TITLE>\n";
$txt.="</HEAD><BODY>\n";
$txt.="<FORM ENCTYPE=\"multipart-form/data\"
NAME=\"frmCargaFicheros\"
METHOD=\"POST\"
ACTION=\"".$PHP_SELF."?cargar=1&cantidad=".$HTTP_POST_VARS["numFicheros"]."\">\n";
for($i=0;$i<$HTTP_POST_VARS["numFicheros"];$i++){
$txt.="</FORM></BODY></HTML>\n";
echo $txt;
}
for($n=0;$n<$cantidad;$n++){
#Lo copiamos
if(!copy($valvar,$nuevositio)){
echo "NO SE HA PODIDO SUBIR EL FICHERO";
}
else{
echo "FICHERO SUBIDO CON ÉXITO";
}
}
?>
Fo rz a r d e s c a rg a d e fic h e ro s a l n a v e g a d o r
d e s c a rg a r. p h p
<?
function Descargar($ElFichero){
$TheFile = basename($ElFichero);
Descargar("prueba_descarga.html");
?>
Y co n e s t o t e rm in o e s t e t u t o ria l. Es p e ro q u e o s s e a ú t il, a u n q u e s e q u e e s co rt o . Es p o s ib le q u e e n o t ro
t u t o ria l p ró xim o m e e xt ie n d a m á s s o b re e s t e t e m a ( s o b re t o d o s i m is co n o cim e in t o s a u m e n t a n , je je ) .
De s ca rg a t e lo s fich e ro s d e l a rt ícu lo
Mu c h a s g ra c ia s . ( 2 5 / 0 9 / 2 0 0 2 )
Po r S a lva d o r
u n a m e jo ra ? ( 1 6 / 0 9 / 2 0 0 2 )
Po r m ikil
b a s a d o e n e s t e e je m p lo s e m e p la n t e a n d o s cu e s t io n e s :
1 . - co m o p u e d o p re a s ig n a r e l va lo r a la va ria b le q u e re co g e e l n o m b re d e l fich e ro ? He p ro b a d o co n va lu e y
m e p re s e n t a e l ca m p o e n b la n co
2 . - p u e d o s u b ir u n fich e ro s in q u e e l u s u a rio s e p a d o n d e e s t a ? o s e a , yo s e q u e fich e ro e s y d o n d e e s t a ,
p u e s lo s u b o a l s e rvid o r y lo d e jo e n s u s it io . Es e s t o p o s ib le
Ex c e le n t e . . !! ( 1 3 / 0 9 / 2 0 0 2 )
Po r Da n ie l Ra m o s
S ALUDOS . . !!
Gra c ia s ( 1 1 / 0 9 / 2 0 0 2 )
Po r m a n u e l
El P ro y e c t o Nuestras zonas
AS P . N ET
W e b Ma t rix
Au t o r: We b Ma t rix
P re s e n t a c ió n
El p ro ye ct o AS P. NET We b Ma t rix e s u n a h e rra m ie n t a lig e ra y fá cil d e u s a r p a ra e l d e s a rro llo d e
a p lica cio n e s we b co n AS P. NET. S u s ca ra ct e rís t ica s o rie n t a d a s a la co m u n id a d d e d e s a rro llo p e rm it e n
la in t e g ra ció n d e u s u a rio s n o ve le s y e xp e rt o s p a ra co m p a rt ir s u s co n o cim ie n t o s e n AS P. NET. El
Pro ye ct o We b Ma t rix u n e a la co m u n id a d AS P. NET a l u t iliza r ca ra ct e rís t ica s co m o la m e n s a je ría
in s t a n t á n e a , la in t e g ra ció n d e u n clie n t e d e Ch a t a s í co m o a yu d a b a s a d a e n co m u n id a d e s . To d o e s t o
u n id o a u n d is e ñ a d o r d e fo rm u la rio s we b t ip o WYS IWYG ( Wh a t Yo u S e e Is Wh a t Yo u Ge t - lo q u e
ve s e s lo q u e o b t ie n e s ) e s t á d is p o n ib le e n u n p a q u e t e d e u n t a m a ñ o m ín im o ~ 1 MB.
D e s c rip c ió n d e Ca ra c t e rís t ic a s
S e n c illo / Fá c il d e u s a r
Ca ra c t e rís t ic a D e s c rip c io n
Co n s t ru ya a p lica cio n e s we b a rra s t ra n d o y s o lt a n d o
Dis e ñ a d o re s WYS IWYG co n t ro le s d e s d e la ca ja d e h e rra m ie n t a s d e We b
Ma t rix.
El Pro ye ct o We b Ma t rix fa cilit a va rio s e je m p lo s d e
a p lica cio n e s y p á g in a s in clu ye n d o : p á g in a s
Eje m p lo s d e Ap lica cio n e s
m a rca d a s p o r fe ch a , s e rvicio s we b , ca ch in g d e
s a lid a , p á g in a s d e lo g in , y m á s .
Co n s t ru ya fá cilm e n t e a p lica cio n e s we b o rie n t a d a s a
d a t o s a l in t e g ra r b a s e s d e d a t o s MS DE o S QL S e rve r
In t e g ra ció n d e Da t o s co n a p lica cio n e s we b . S im p le m e n t e a rra s t re y s u e lt e
la s t a b la s d e d a t o s d e s d e e l d is e ñ a d o r p a ra
co n e ct a rla s a s u p á g in a .
Me jo re s u s a p lica cio n e s y d e s a rro lle a m a yo r
Ga le ría d e Co n t ro le s ve lo cid a d u s a n d o co n t ro le s d e la g a le ría e n lín e a e n
www. a s p . n e t
Co n vie rt a cu a lq u ie r cla s e d e VB. NET o C# e n u n
Ge n e ra d o r Pro xy d e S e rvicio s We b XML
S e rvicio We b XML a u t o m á t ica m e n t e .
Na ve g u e rá p id a m e n t e p o r la b ib lio t e ca d e cla s e s d e l
Vis o r d e Cla s e s . NET . NET. Fra m e wo rk p a ra e n co n t ra r la s cla s e s q u e
n e ce s it a p a ra co n s t ru ir s u a p lica ció n .
Ap re n d e r VB. NET y C# e s s e n cillo co n e l e d it o r d e
Ed it o r d e t e xt o co lo re a d o d e rica s in t a xis
t e xt o co lo re a d o .
Ayu d a p a ra g u ia r a lo s u s u a rio s a t ra vé s d e la s
Ayu d a n t e s y p la n t illa s b a s a d o s e n t a re a s
t a re a s m á s co m u n e s .
Es p e cifiq u e u n o s p o co s p a rá m e t ro s y e l có d ig o e s
Co n s t ru ct o re s d e Có d ig o
g e n e ra d o a u t o m á t ica m e n t e .
Tra b a jo p o r a rch ivo s ( n o s e re q u ie re u n El t ra b a jo p o r a rch ivo s p ro p o rcio n a u n a a lt e rn a t iva
p ro ye ct o ) m á s lig e ra a l h a b it u a l t ra b a jo p o r p ro ye ct o s .
Alo je s u s a p lica cio n e s e n u n a s e le cció n d e t e rce ra s
S o p o rt e p a ra a lo ja m ie n t o FTP
co m p a ñ ía s vía FTP
Lig e ra
Ca ra c t e rís t ic a D e s c rip c io n
I n t e g ra c ió n c o n la Co m u n id a d
Ca ra c t e rís t ic a D e s c rip c io n
Co m e n t a co n t u s co le g a s AS P. NET a t ra vé s d e l MS N
In t e g ra ció n d e Me n s a je ría In s t a n t á n e a
m e s s e n g e r in t e g ra d o .
De s ca rg u e co n t ro le s we b y a d d - in s d e la g a le ría e n lín e a -
Ext e n s ib ilid a d o e s crib a lo s s u yo s p ro p io s y p ó n g a lo s a d is p o s ició n d e
o t ro s p a ra s u u s o .
Ob t e n g a re s p u e s t a rá p id a a s u s p re g u n t a s a l co n e ct a r
In t e g ra ció n e n Lis t s e rv / Ne ws g ro u p d ire ct a m e n t e co n lo s s e rvid o re s d e lis t a s y n o t icia s d e
AS P. NET.
Clie n t e d e Ch a t in t e g ra d o Acce s o d ire ct o a lo s "Ch a t ro o m s " d e AS P. NET.
Na ve g u e y d e s ca rg u e co n t ro le s e n lin e a - re vis e y p u n t ú e
S e le ccio n a d o r d e Co n t ro le s
lo s co n s t ru id o s p o r o t ro s .
Co m p a rt a s u s fra g m e n t o s d e có d ig o co n o t ro s
Co m p a rt id o r d e Fra g m e n t o s d e có d ig o
d e s a rro lla d o re s d e s d e la p ro p ia h e rra m ie n t a .
Má s in fo rm a c ió n
Má s in fo rm a ció n y d e s ca rg a a p a rt ir d e l 1 7 d e ju n io d e 2 0 0 2 e n :
● h t t p : / / www. a s p . n e t / we b m a t rixp ro je ct
● h t t p : / / www. we b m a t rixp ro je ct . n e t
jijiji ( 2 4 / 0 9 / 2 0 0 2 )
Po r Po p e
q u e re m o s s a b e r ( 0 5 / 0 9 / 2 0 0 2 )
Po r d a vid b a s t id a s
Mu y re s p e t u o s a m e n t e s o licit o a u s t e d n o s e n vie u n a co p ia d e l p ro ye ct o o u n in fo rm e d e l p o r q u é
d e s u s s ig la s , ya q u e e l p ro ye ct o d e n o s o t ro s e s t a re g is t ra d o lo ca l y n a cio n a lm e n t e co n e l m is m o
n o m b re y n o s in t e re s a ria co n o ce r d e s u p ro p u e s t a y p ro ye ct o p a ra t e n e r cla rid a d d e s u a p lica ció n
y fu n cio n a m ie n t o .
Ag ra d e ce m o s s u a t e n cio n a la p re s e n t e .
a te nta m e nte ,
Tra d u c c ió n ( 2 4 / 0 7 / 2 0 0 2 )
Po r Ale ja n d ro Ló p e z
AS P . N ET w e b MAt rix ( 2 6 / 0 6 / 2 0 0 2 )
Po r Jh o n Cu a d ro s
Cu a n d o lo s u b e n e n e s p a ñ o l? ( 1 8 / 0 6 / 2 0 0 2 )
Po r Lo m a xCyrru s
Co m o ya e s d e co s t u b re e s t o y le ye n d o s s u s in fo s , y e s t e d e a s p lo e n cu e n t ro g e n ia l, p e ro s i lo
s u b e n e n e s p a ñ o l s e ria m u ch o m e jo r.
Re co m e n d a r e s t e t u t o ria l | Es t a d ís t ica s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Do cu m e n t a ció n | Re cu rs o s | Ta lle r Ja va
Ta lle r Ja v a . JD C Te c h Tip s ( 2 0 d e D ic ie m b re d e 2 0 0 1 )
Au t o r: S u n
Tra d u c t o r: Ju a n An t o n io Pa lo s ( Ozit o )
P re s e n t a c ió n
Bie n ve n id o a lo s Co n s e jo s Té cn ico s d e la Co n e xió n d e l De s a rro lla d o r Ja va ( JDC) , d e l 2 0 d e
Dicie m b re d e 2 0 0 1 . Es t a e d ició n cu b re :
Cre a r Mo d a l I n t e rn a l Fra m e s , Ap ro x im a c ió n I
El co n ju n t o d e co m p o n e n t e s Ja v a Fo u n d a t io n Cla s s e s ( JFC) P ro je c t S w in g p ro p o rcio n a e l
co m p o n e n t e JOptionPane p a ra m o s t ra r s im p le s d ía lo g o s e s t á n d a rd s . Un d iá lo g o e s u n a ve n t a n a
q u e m u e s t ra in fo rm a ció n , p e ro t a m b ié n e s p e ra u n a re s p u e s t a d e l u s u a rio . Po r e je m p lo , u n d iá lo g o
p o d ría a vis a r a l u s u a rio d e u n p ro b le m a p o t e n cia l, y t a m b ié n m o s t a r u n b o t o n OK p a ra q u e e l
u s u a rio p u e d a re co n o ce r e l a vis o . Po d e m o s m o s t ra r u n d iá lo g o e n u n a ve n t a n a p o p u p o u n m a rco
in t e rn o , e s d e cir, u n a ve n t a n a d e n t ro d e o t ra ve n t a n a .
Pa ra m o s t ra r u n d iá lo g o e n u n a ve n t a n a d e p o p u p , u s a m o s u n o d e lo s m é t o d o s
JOptionPaneshowXXXDialog co m o showMessageDialog. La ve n t a n a d e s p le g a b le e n e s t e ca s o e s
m o d a l. Es t o s ig n ifica q u e e l u s u a rio d e b e re s p o n d e r a la ve n t a n a a n t e s d e q u e e l p ro g ra m a co n t in ú e
s u e je cu ció n . Pe ro h a y m á s - - m o d a l t a m b ié n s ig n ifica q u e e l u s u a rio n o p u e d e in t e ra ct u a r co n o t ra s
p a rt e s d e l p ro g ra m a . Pa ra m o s t ra r u n d iá lo g o e n u n fra m e in t e rn o , u s a m o s u n o d e lo s m é t o d o s
showInternalXXXDialog d e JOptionPane. Es t o s d iá lo g o s d e m a rco in t e rn o n o s o n m o d a le s . S in
e m b a rg o h a y ve ce s q u e p o d ría m o s q u e re r q u e u n d iá lo g o in t e rn o s e a m o d a l. Es t e t ru co m o s t ra rá
co m o cre a r u n d iá lo g o m o d a l e n u n m a rco in t e rn o .
S i h e m o s t ra b a ja d o co n fra m e s in t e rn o s , s a b e m o s q u e n o rm a lm e n t e a ñ a d im o s lo s fra m e s in t e rn o s ,
e s d e cir e je m p la re s d e JInternalFrame, a u n d e s kt o p p a n e , e s d e cir, u n e je m p la r d e
JDesktopPane. Un d e s kt o p p a n e e s u n p a n e l d e ca p a s q u e m a n e ja m ú lt ip le s fra m e s in t e rn o s
s o la p a d o s . Gla s s p a n e e s p a rt e d e l p a n e l ra íz co n e l q u e t ra t a u n a ve n t a n a d e a lt o n ive l. Un ro o t
p a n e s e co m p o n e d e t re s p a rt e s ( e l glass pane, e l layered pane, y e l content pane) , y u n a
cu a rt a p a rt e o p cio n a l ( la b a rra d e m e n ú ) . El content pane co n t ie n e lo s co m p o n e n t e s vis ib le s d e l
root pane. La b a rra d e m e n ú o p cio n a l co n t ie n e lo s m e n ú s d e l root pane. Y e l layered pane
p o s icio n a lo s co n t e n id o s d e l content pane y d e l m e n u b a r o p cio n a l. El glass pane e s ú t il e n la
in t e rce p ció n d e e ve n t o s q u e d e o t ra fo rm a p o d ría n p a s a r a t ra vé s d e lo s co m p o n e n t e s s u b ya ce n t e s .
this.glass = glass;
Aq u í t e n e m o s u n p ro g ra m a q u e p o n e t o d a s la s p ie za s ju n t a s . Cre a u n JDesktopPane co n u n s ó lo
internal frame. En e s t e m a rco h a y u n b o t ó n . Cu a n d o s e p u ls a e l b o t ó n , a p a re ce e l d iá lo g o d e
m e n s a je q u e b lo q u e a e l internal frame. Mie n t ra s q u e e s t á vis ib le , n o p o d e m o s p u ls a r e l p rim e r
b o t o ó n . Un a ve z p u ls a d o e l b o t o n OK d e la ve n t a n a d e l m e n s a je , p o d e m o s in t e ra ct ú a r co n e l p rim e r
internal frame.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
JFrame.EXIT_ON_CLOSE);
ActionListener showModal =
new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Returns immediately");
}
};
JInternalFrame internal =
new JInternalFrame("Opener");
desktop.add(internal);
frame.setVisible(true);
}
}
Cre a r Mo d a l I n t e rn a l Fra m e s , Ap ro x im a c ió n I I
Au n q u e la a p ro xim a ció n a n t e rio r p ro p o rcio n a n m a rco s in t e rn o s q u e b lo q u e a b a n la s e n t ra d a s d e
o t ro s m a rco s in t e rn o s , lo s m a rco s n o e ra n re a lm e n t e m o d a le s . Pa ra s e r re a lm e n t e m o d a l, u n
internal frame n e ce s it a b lo q u e a rs e u n a ve z q u e s e h a m o s t ra d o . El internal frame d e a rrib a n o
h a ce e s t o .
Pa ra p o d e r h a ce r u n internal frame re a lm e n t e m o d a l, d e b e m o s h a ce rn o s co n e l d e s p a ch o d e
e ve n t o s cu a n d o e l fra m e s e h a m o s t ra d o . Es t o s e ría a d e m á s d e m o s t ra r e l fra m e e n e l glass pane.
To d a vía p o d e m o s u s a r e l JOptionPane p a ra cre a r lo s d iá lo g o s d e m e n s a je y d e e n t ra d a , p e ro
t a m b ié n n e ce s it a m o s a ñ a d ir a lg ú n co m p o rt a m ie n t o q u e n o rm a lm e n t e e s m a n e ja d o p o r n o s o t ro s
cu a n d o u s a m o s u n o d e lo s m é t o d o s showInternalXXX. De b id o a la n e ce s id a d d e u n
co m p o rt a m ie n t o p e rs o n a liza d o , y cu á n d o e s n e ce s it a d o , e s n e ce s a rio cre a r u n a s u b cla s e d e
JInternalFrame. Ha ce r e s t o t a m b ié n n o s p e rm it e m o ve r d e n t ro d e la s u b cla s e m u ch o d e l
co m p o rt a m ie n t o q u e h a cía m o s a n t e rio rm e n t e e n e l ActionListener.
// Size frame
Dimension size = getPreferredSize();
Dimension rootSize = desktop.getSize();
setBounds((rootSize.width - size.width) / 2,
(rootSize.height - size.height) / 2,
size.width, size.height);
desktop.validate();
try {
setSelected(true);
} catch (PropertyVetoException ignored) {
}
Añ a d ie n d o e s t o s d o s b lo q u e s d e có d ig o e n e l m e d io d e n u e s t ro co n s t ru ct o r co m p le t a m o s la
in icia liza ció n d e la s u b cla s e d e JInternalFrame.
Lo ú lt im o q u e t e n e m o s q u e h a ce r e s t o m a r e l d e s p a ch o d e e ve n t o s d e s p u é s d e q u e e l internal
frame s e h a ya m o s t ra d o . No rm a lm e n t e e l d e s p a ch o d e e ve n t o s s e m a n e ja e n la cla s e EventQueue.
S in e m b a rg o , co m o e s t á m o s b lo q u e a n d o e l t h re a d d e m a n e jo d e e ve n t o s cu a n d o h a ce m o m o d a l a l
internal frame, e l EventQueue n u n ca ve rá lo s e ve n t o s , Po r e s o d e b e m o s re e m p la za r s u
fu n cio n a lid a d .
Pa ra p o d e r d e s p a ch a r e ve n t o s n o s o t ro s m is m o s , t o d o lo q u e t e n e m o s q u e h a ce r e s co p ia r e l có d ig o
d e l m é t o d o dispatchEvent() d e EventQueue. S i e l internal frame s e h a ce vis ib le d e s d e u n t h re a d
d is t in t o a l t h re a d d e d e s p a ch o d e e ve n t o s , in clu s o n i n e ce s it a m o s co p ia r e l có d ig o d e l m é t o d o
dispatchEvent(). En e s t e ca s o , t o d o lo q u e t e n e m o s q u e h a ce r e s lla m a r a wait() p a ra b lo q u e a r.
Lu e g o , cu a n d o s e cie rre e l m a rco , n e ce s it a m o s s e r n o t ifica d o s . Aq u í e s t á e l có d ig o d e d e s p a ch o d e
e ve n t o s :
MenuComponent) {
((MenuComponent)source).dispatchEvent(
event);
} else {
System.err.println(
"Unable to dispatch: " + event);
}
}
} else {
while (isVisible()) {
wait();
}
}
} catch (InterruptedException ignored) {
}
}
Aq u í h a y u n e je m p lo q u e lo p o n e t o d o ju n t o . En lu g a r d e s im p le m e n t e m o s t ra r u n m e n s a je d e
d iá lo g o , p id e a l u s u a rio u n a re s p u e s t a a u n a p re g u n t a S i/ N o cu a n d o s e m u e s t ra e l internal frame
m o d a l. Ob s e rva q u e t o d o lo q u e t e n e m o s q u e h a ce r d e s p u é s d e cre a r e l internal frame e s
m o s t ra rlo :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.beans.*;
PropertyChangeListener pcl =
new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent
event) {
if (isVisible() &&
(event.getPropertyName().equals(
JOptionPane.VALUE_PROPERTY) ||
event.getPropertyName().equals(
JOptionPane.INPUT_VALUE_PROPERTY))) {
try {
setClosed(true);
} catch (PropertyVetoException ignored) {
}
ModalInternalFrame.this.setVisible(false);
glass.setVisible(false);
}
}
};
pane.addPropertyChangeListener(pcl);
// Size frame
Dimension size = getPreferredSize();
Dimension rootSize = desktop.getSize();
setBounds((rootSize.width - size.width) / 2,
(rootSize.height - size.height) / 2,
size.width, size.height);
desktop.validate();
try {
setSelected(true);
} catch (PropertyVetoException ignored) {
}
stopModal();
}
}
ActionListener showModal =
new ActionListener() {
Integer ZERO = new Integer(0);
Integer ONE = new Integer(1);
public void actionPerformed(ActionEvent e) {
modal.setVisible(true);
JInternalFrame internal =
new JInternalFrame("Opener");
desktop.add(internal);
Co p y rig h t y n o t a s d e la t ra d u c c ió n
N o t a re s p e c t o a la t ra d u c c ió n
N o t a ( Re s p e c t o a la e d ic ió n v ia e m a il)
S u s c rip c io n e s
Re a lim e n t a c ió n
Arc h iv o s
Co p y rig h t
Es t e d o cu m e n t o e s t a p ro t e g id o p o r la s le ye s d e a u t o r. Pa ra m a yo r in fo rm a ció n ve a
h t t p : / / ja va . s u n . co m / jd c/ co p yrig h t . h t m l
En la c e s a s it io s fu e ra d e S u n
Lo s Co n s e jo s Té cn ico s d e la JDC p u e d e n d a r e n la ce s a o t ro s s it io s y re cu rs o s . Ya q u e S u n n o t ie n e
co n t ro l s o b re e s o s s it io s o re cu rs o s u s t e d re co n o ce y a ce p t a q u e S u n n o e s re s p o n s a b le p o r la
d is p o n ib ilid a d d e t a le s s it io s o re cu rs o s , y n o s e re s p o n s a b iliza p o r cu a lq u ie r co n t e n id o , a n u n cio s ,
p ro d u ct o s u o t ro s m a t e ria le s d is p o n ib le s e n t a le s s it io s o re cu rs o s . S u n n o s e rá re s p o n s a b le , d ire ct a
o in d ire ct a m e n t e , p o r cu a lq u ie r d a ñ o o p é rd id a ca u s a d a o s u p u e s t a m e n t e ca u s a d a p o r o e n re la ció n
co n e l u s o d e o s e g u rid a d s o b re cu a lq u ie r t a l co n t e n id o , b ie n e s o s e rvicio s d is p o n ib le s e n o a t ra vé s
d e cu a lq u ie r s it io o re cu rs o .
JDC Te ch Tip s De ce m b e r 2 0 , 2 0 0 1
© 1 9 9 8 - 2 0 0 2 , Ju a n An t o n io Pa lo s ( Ozit o ) y Jo a q u in Bra vo .
Ja va e n ca s t e lla n o .
Fo ro s d e Nuestras zonas
de ba te
Vis u a l Ba s ic Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
As u n t o Us u a rio Fe c h a Re s p u e s t a s Últ im a re s p u e s t a
2 0 d e o ct u b re d e
Fo rm a t o d e b o t o n e s d a n ilo id e 0 -
2002
Pre g u n t a S o b re 2 0 d e o ct u b re d e
En ErGiE 0 -
Co m a n d o S h e ll 2002
1 6 d e o ct u b re d e
Cre a ció n d e Ob je t o s gaby 4 2 0 d e o ct u b re d e 2 0 0 2
2002
S I TENEIS ALGUNA 5 d e s e p t ie m b re d e
ALBERTO 7 2 0 d e o ct u b re d e 2 0 0 2
DUDA 2002
Ca d e n a s d e m á s d e
J. P. L. 8 d e o ct u b re d e 2 0 0 2 1 1 9 d e o ct u b re d e 2 0 0 2
6 0 . 0 0 0 ch a r
Exis t e a lg ú n a p i d e l
m icro s o ft in t e rn e t 1 0 d e o ct u b re d e
p a n o ra m ixxx 1 1 9 d e o ct u b re d e 2 0 0 2
e xp lo re r p a ra 2002
VBa s ic? ? ? ? ?
Má s ca ra e n u n Te xt Bo x e p e re z 9 d e o ct u b re d e 2 0 0 2 3 1 9 d e o ct u b re d e 2 0 0 2
t ip o d e d a t o b o o le a n o 1 5 d e o ct u b re d e
p a ky 3 1 9 d e o ct u b re d e 2 0 0 2
( S í/ No ) 2002
Es p e ra r a q u e u n 1 8 d e o ct u b re d e
Em p a r 2 1 9 d e o ct u b re d e 2 0 0 2
p ro ce s o t e rm in e 2002
1 8 d e o ct u b re d e
s e g u rid a d a n t e t o d o m a n o lo 2 1 9 d e o ct u b re d e 2 0 0 2
2002
1 7 d e o ct u b re d e
En via r p u ls o s a l Lp t 1 Es li Mo re n o 2 1 9 d e o ct u b re d e 2 0 0 2
2002
co n t ro la r q u e n o h a ya
p a ky 29 de a gosto de 2002 5 1 9 d e o ct u b re d e 2 0 0 2
re g is t ro s d u p lica d o s
Aje cu t a r e n la Ba rra d e 1 8 d e o ct u b re d e
Wilb e rt 1 1 9 d e o ct u b re d e 2 0 0 2
Ta re a s 2002
1 7 d e o ct u b re d e
DAO y ADO Ru b é n 1 1 8 d e o ct u b re d e 2 0 0 2
2002
Co n e xio n e s t e le fó n ica s 1 0 d e o ct u b re d e
Ern e s t o 1 1 8 d e o ct u b re d e 2 0 0 2
co n VB 2002
1 8 d e o ct u b re d e
VB A - > Ja va S e rvle t fro m e r 0 -
2002
Te n g o u n p ro b le m a m u y
a nsoba 31 de a gosto de 2002 2 1 8 d e o ct u b re d e 2 0 0 2
g ra ve ( Vis u a l Ba s ic)
1 5 d e o ct u b re d e
Urg e n t e p o r fa vo r licjrz 3 1 8 d e o ct u b re d e 2 0 0 2
2002
Bu s co p ro g ra m a d o r d e
vis u a l Ba s ic. Pa g o e n Iva n 9 d e o ct u b re d e 2 0 0 2 1 1 7 d e o ct u b re d e 2 0 0 2
e u ro s .
« 1 2 3 4 5 6 7 8 9 10 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
Vis u a l Fo x P ro Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
Vis u a l Fo x vs Ma cro s e n 1 6 d e o ct u b re d e
Os va ld o 0 -
Exce l 2002
1 6 d e o ct u b re d e
Dis e n a d o r d e Arch ivo s ca rlo s ru b io 0 -
2002
n e ce s it o p ro g ra m a d e a cce s o 1 4 d e o ct u b re d e
rt a fu r_ flo re s 0 -
a cu a lq u ie r s is t e m a 2002
1 4 d e o ct u b re d e
No va t o rt a fu r_ flo re s 0 -
2002
1 1 d e o ct u b re d e
URGENTE!!!!!!!!!!!!! Pa u l 0 -
2002
1 0 d e o ct u b re d e
Fo p e n m a rco s n o ya 0 -
2002
9 d e o ct u b re d e
El m e jo r RAD Lu ca s 0 -
2002
9 d e o ct u b re d e
Pro b le m a s co n Vis t a s Ca rlo s 0 -
2002
3 d e s e p t ie m b re 9 d e o ct u b re d e
Ayu d a p o rfa vo r! Es t e b a n 4
de 2002 2002
8 d e o ct u b re d e
Cu a l e s s u o p in io n ? ? Lu ca s 0 -
2002
Fu n çã o p a ra o b t e r o n u m e ro 8 d e o ct u b re d e
Ma rt in 0 -
d e d ia s u t e is 2002
2 d e o ct u b re d e
S e rvid o r Co m . Exe re n a r 0 -
2002
p ro g ra m a d e s e g u ro s e n fo x 1 d e o ct u b re d e 2 d e o ct u b re d e
a le ja n d ro 2
p ro 2002 2002
Mo s t ra r d a t o s e n Grid co n 2 d e o ct u b re d e
ju a n 0 -
ra n g o d e fe ch a s 2002
Im p rim ir Ca m p o Nu m e rico 1 d e o ct u b re d e
Ma rca rva S 0 -
d e co lo r, co n If/ e ls e / e n d if 2002
30 de
In g Co m p u t a ció n Art u ro Aq u in o s e p t ie m b re d e 0 -
2002
28 de
De . t xt o . d b f a VFP 7 . 0 o zd a p a va s e p t ie m b re d e 0 -
2002
« 1 2 3 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
HTML Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
1 7 d e o ct u b re d e
Fo rm u la rio s Mó n ica 0 -
2002
a ve r q o s p a re ce e s t a we b , 1 7 d e o ct u b re d e
za p a m ix 0 -
g ra cia s 2002
a s p e ct o b a rra s d e 1 4 d e o ct u b re d e 1 7 d e o ct u b re d e
n e wh t m 2
d e s p la za m ie n t o 2002 2002
1 6 d e o ct u b re d e
Re fre s co e n n e t s ca p e 6 Ja vi 0 -
2002
1 5 d e o ct u b re d e
Ed it a r Fu e n t e s n o m e co p ie s 0 -
2002
4 d e o ct u b re d e 1 2 d e o ct u b re d e
we b g ra t is s in p u b licid a d s a n d ru p s 2
2002 2002
¿ co m o a g re g a r u n ch a t a 1 0 d e o ct u b re d e 1 1 d e o ct u b re d e
a n t o n io o rt e g a 1
u n a p a g in a ? 2002 2002
1 1 d e o ct u b re d e
pdf m a ria 0 -
2002
1 1 d e o ct u b re d e
s h o wm o d a ld ia lo g Jo rd i 0 -
2002
9 d e o ct u b re d e
fo rm s h t m l lo re n 2 9 d e o ct u b re d e 2 0 0 2
2002
2 2 d e m a yo d e
a u t o ru n . in f m ig u e l 3 9 d e o ct u b re d e 2 0 0 2
2002
3 d e o ct u b re d e
ca m b ia r e s t ilo a u n s e le ct Ma n u e l 2 9 d e o ct u b re d e 2 0 0 2
2002
9 d e o ct u b re d e
Pro b le m a s co n m a rco s Be le n 0 -
2002
3 d e o ct u b re d e
Fo rm u la rio s Gio va n n i 0 -
2002
2 6 d e s e p t ie m b re
co n ve rt ir h t m l a fo rm a t o p d f max 3 3 d e o ct u b re d e 2 0 0 2
de 2002
1 1 d e a b ril d e
S a lt o d e p á g in a S ch e rzo 1 2 d e o ct u b re d e 2 0 0 2
2002
Co m o ca rg a r u n fra m e 2 d e o ct u b re d e
b a ra h o n a 0 -
e s p e cia l 2002
2 7 d e s e p t ie m b re
e lim in a r b a rra d e m e n u s a n d ru p s 1 2 d e o ct u b re d e 2 0 0 2
de 2002
« 1 2 3 4 5 6 7 8 9 10 11 ... »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
Ja v a ( b á s ic o ) Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
a b rir y g u a rd a r fo rm a t o s 13 de
2 0 d e o ct u b re d e
jlu is g il o ct u b re d e 1
g rá fico s d e s d e Ja va 2002
2002
9 d e o ct u b re 2 0 d e o ct u b re d e
Em p e za r a t ra b a ja r co n Ja va p e d ro 3
de 2002 2002
2 2 d e ju n io 2 0 d e o ct u b re d e
Divis io n e n t re ce ro Jo rg e Mo lin a 2
de 2002 2002
18 de
2 0 d e o ct u b re d e
AYUUUUDAAAAAAAA Be lTh a S a r o ct u b re d e 4 2002
2002
12 de
1 9 d e o ct u b re d e
zo o m lu is p e re z_ g ra t e ro l o ct u b re d e 2 2002
2002
19 de
Ayu d a !! co n co o rd e n a d a s Lu is Ed u a rd o o ct u b re d e 0 -
2002
15 de
1 9 d e o ct u b re d e
ch u rro d e e rro re s r0 4 6 6 o ct u b re d e 6 2002
2002
Ma n u a l d e Vis u a lAg e e n 19 de
1 9 d e o ct u b re d e
GARCIAJ fe b re ro d e 54
ca s t e lla n o 2002
2002
17 de
1 8 d e o ct u b re d e
LINUX- JAVA- POS TGRES QL lo b m b o ct u b re d e 1 2002
2002
16 de
1 8 d e o ct u b re d e
ICONO DE JAVA Ga rcia j o ct u b re d e 3 2002
2002
17 de
1 8 d e o ct u b re d e
Ma n ife s t e n lo s JAR g a rio n o ct u b re d e 2 2002
2002
17 de
1 8 d e o ct u b re d e
S t rin g a a rra y d e ca ra ct e re s la b o ct u b re d e 2 2002
2002
17 de
La n za r u n HELP! Lu is Alb e rt o o ct u b re d e 0 -
2002
¿ Co n ve rt ir in t y s h o rt a b yt e
3 0 d e a b ril 1 7 d e o ct u b re d e
p a ra a lm a ce n a rlo e n t a b la d e Ra yg m a r 4
de 2002 2002
b yt e s ?
S o b re la g e n e ra ció n d e 15 de
1 7 d e o ct u b re d e
o m a rd f1 8 o ct u b re d e 3
n ú m e ro s a le a t o rio s e n Ja va 2002
2002
17 de
Co n s u lt a JTa b le Ro s i o ct u b re d e 0 -
2002
Erro r ca rg a n d o e l d rive r jd b c 16 de
1 7 d e o ct u b re d e
irb o o ct u b re d e 1
p a ra m ys q l 2002
2002
Co n d a t o s h a ce r g ra fica s 15 de
1 7 d e o ct u b re d e
s a n d ra o ct u b re d e 1
e s t a d is t ica s e n ja va 2002
2002
Cla s s p a t h e n lin u x, y ve rs ió n 15 de
1 7 d e o ct u b re d e
jo s é Lu is o ct u b re d e 1
d e l kit d e d e s a rro llo 2002
2002
16 de
Co m o o b t e n e r e l p a t h ra m o n a l o ct u b re d e 0 -
2002
« 1 2 3 4 5 6 7 8 9 10 11 ... »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
P HP Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
19 de
d u d a u rg e n t e g la d ys o ct u b re d e 0 -
2002
18 de
a yu d a a a p o r fa vo r Is m a e l o ct u b re d e 0 -
2002
17 de
1 7 d e o ct u b re d e
No fu n cio n a la a n g ie o ct u b re d e 1 2002
2002
17 de
Le s ru e g o m e a yu d e n ro cio o ct u b re d e 0 -
2002
17 de
PAGINAR CAMPOS MEMO DE FOX rflo re s o ct u b re d e 0 -
2002
Pro b le m a a l Es crib ir u n 14 de
1 7 d e o ct u b re d e
LEGION o ct u b re d e 2
TXT!!!!. . . AYUDA PLS !! 2002
2002
p ro b le m a s co n a ct u a liza cio n e s e n 17 de
1 7 d e o ct u b re d e
cris t in a o ct u b re d e 1
php 2002
2002
17 de
1 7 d e o ct u b re d e
Un p ro b le m a d e d is e ñ o LOUIAH o ct u b re d e 1 2002
2002
1 8 d e m a rzo 1 6 d e o ct u b re d e
p h p co n s q l s e rve r jo s e 4
de 2002 2002
16 de
p ro b le m a s co n o ra cle y p h p crim a x o ct u b re d e 0 -
2002
15 de
1 5 d e o ct u b re d e
Im p re s io n d e p a p e l e n p h p LANTE o ct u b re d e 1 2002
2002
14 de
1 4 d e o ct u b re d e
Erro r e n p ro g ra m a cio n . co m / p h p Gro g ie o ct u b re d e 1 2002
2002
14 de
1 4 d e o ct u b re d e
¿ Co m o co n t ro la r e rro re s ? Me t a lMa n ia c o ct u b re d e 3 2002
2002
13 de
1 4 d e o ct u b re d e
PHP COMO? a n t a re s o ct u b re d e 2 2002
2002
14 de
PHP y MyS QL Ju a n m a o ct u b re d e 0 -
2002
7 d e o ct u b re 1 2 d e o ct u b re d e
AS P o PHP? Me t a lMa n ia c 3
de 2002 2002
11 de
1 1 d e o ct u b re d e
'S o la p a s ' e n lu g a r d e m e n ú ? Ro b e rt o o ct u b re d e 1 2002
2002
Co m o e je cu t a r u n a q u e ry d e S AP e n 9 d e o ct u b re 1 0 d e o ct u b re d e
rca n a va t e 1
PHP? de 2002 2002
9 d e o ct u b re 1 0 d e o ct u b re d e
a yu d a p o r fa vo r, s o y n u e vo e n p h p Jo n a t h a n 3
de 2002 2002
« 1 2 3 4 5 6 7 8 9 10 11 ... »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
XML Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
1 7 d e o ct u b re d e
XML y b a s e s d e d a t o s yo m is m a 0 -
2002
Co m o g e n e ro u n lin k d e s d e
1 3 d e o ct u b re d e
XML a t ra ve s d e XS L co n Vict o r 0 -
2002
As p ? ?
2 3 d e s e p t ie m b re
XML co n a s p y b a s e d e d a t o s Lu is Alo n s o 0 -
de 2002
1 8 d e ju n io d e 1 3 d e s e p t ie m b re d e
XML y Arch ivo s Pla n o s g ro b le s m o n ro y 2
2002 2002
4 d e s e p t ie m b re
m i p ro ye ct o . . . la rra it z 0 -
de 2002
20 de a gosto de 27 de a gosto de
Pa rs e o in co rre ct o XML- XS L t it o 2
2002 2002
La p a la b ra cla ve xs l: s o rt n o s e
2 5 d e ju lio d e 21 de a gosto de
p u e d e u t iliza r e n e l e s p a cio d e va g a lu m e 1
2002 2002
n o m b re s h t t p : / / www. w3 . o rg /
6 de a gosto de 20 de a gosto de
Ta b la s e n XML Ma rco s 1
2002 2002
7 de a gosto de 20 de a gosto de
g e n e ra r HTML Die g o 1
2002 2002
7 de a gosto de
S ch e m a s ca s i4 1 6 0 -
2002
5 de a gosto de
S ch e m a s y DTDs ca s i4 1 6 0 -
2002
5 de a gosto de
ru t a s d in a m ica s Txiki_ 3 0 -
2002
2 5 d e e n e ro d e
s u p e rin d ice s e n xm l e li 3 2 de a gosto de 2002
2002
2 3 d e ju lio d e
Co n e ccio n a S QL s e rve r a le b la ke 1 2 de a gosto de 2002
2002
2 3 d e ju lio d e
DTDs ca s i4 1 6 0 -
2002
le e r u n xm l d e s d e e l fin a l 2 2 d e ju lio d e
Va g a lu m e 0 -
h a s t a e l p rin cip io 2002
7 d e ju lio d e
Xm l y b a s e s d e d a t o s dani 2 2 2 d e ju lio d e 2 0 0 2
2002
« 1 2 3 4 5 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
Ba s e s d e d a t o s y S QL Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
As u n t o Us u a rio Fe c h a Re s p u e s t a s Últ im a re s p u e s t a
1 8 d e o ct u b re
co n s u lt a e n a cce s s LATER 0 -
de 2002
¿ S e p u e d e n cre a r b a s e s 1 8 d e o ct u b re
Wro 0 -
d e d a t o s co n e l m ys q l? de 2002
Act u a liza r d a t o s d e u n 1 8 d e o ct u b re
Mo x 0 -
fo rm u la rio , h e lp ! de 2002
1 8 d e o ct u b re
Du d a d e VB i Acce s Ma rc 1 1 8 d e o ct u b re d e 2 0 0 2
de 2002
1 5 d e o ct u b re
ba se de da tos g a ch a s 2 1 8 d e o ct u b re d e 2 0 0 2
de 2002
1 8 d e o ct u b re
a yu d a a a a a Is m a e l 0 -
de 2002
1 7 d e o ct u b re
ERROR EN BD Ma rco Me n d o za 0 -
de 2002
Co m o re a liza r e s t a 1 7 d e o ct u b re
Ro d rig o 0 -
co n s u lt a de 2002
m ig ra cio n d e d a t o s 1 7 d e o ct u b re
Ra fa l D. J. 0 -
( DBa s e a S QL) de 2002
m ig ra cio n d e d a t o s Ra fa l D. J. No vo a 1 7 d e o ct u b re
de 2002
0 -
( DBa s e a S QL) Hd e z
1 7 d e o ct u b re
in fo rm e s d e a cce s s y m a il t xu s 2 0 0 2 1 1 7 d e o ct u b re d e 2 0 0 2
de 2002
Co n ve rt id o r d e Fo x a S QL 1 5 d e o ct u b re
m va 1 1 6 d e o ct u b re d e 2 0 0 2
o Acce s de 2002
1 6 d e o ct u b re
Acce s s J. Lu is 0 -
de 2002
1 6 d e o ct u b re
Pre g u n t a s o b re a cce s s J. Lu is 0 -
de 2002
¿ p a ra q u é s irve n y co m o 1 5 d e m a yo d e
s ka n a t 1 1 6 d e o ct u b re d e 2 0 0 2
s e u t iliza n lo s CHECKS ? 2002
1 5 d e o ct u b re
a cce s s e n riq u e 4 1 6 d e o ct u b re d e 2 0 0 2
de 2002
Có m o vin cu la r a cce s s co n 1 6 d e o ct u b re
Gra cie la 0 -
vis u a l b a s ic de 2002
Acce s o re m o t o a u n a BD
1 5 d e o ct u b re
e n FOX- co n virt ie rn d o a m va 0 -
de 2002
S QL o Acce s
1 5 d e o ct u b re
a cce s s jo s e ra m o n 2 1 5 d e o ct u b re d e 2 0 0 2
de 2002
1 5 d e o ct u b re
p a rb u lit o s m a rko s s 0 -
de 2002
« 1 2 3 4 5 6 7 8 9 10 11 ... »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
AS P Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
cu a n d o vo y a u s a r 1 9 d e o ct u b re d e
fre d d y 0 -
AS P? ? ? ? ? 2002
Pa g o p o r In t e rn e t
1 9 d e o ct u b re d e
( va lid a r t a rje t a s , J. L. De n g ra 0 -
2002
e t c. . . )
6 d e ju n io d e 1 8 d e o ct u b re d e
s e g u rid a d co n a s p iva n 2
2002 2002
ch ilis o ft a s p 1 7 d e o ct u b re d e
fo fo 0 -
g ra t is !!!!!!! 2002
1 7 d e o ct u b re d e
Bu s q u e d a p o r AS P Da n ie l 0 -
2002
Co m o cre a r HTML d e
1 1 d e o ct u b re d e 1 5 d e o ct u b re d e
m a n e ra Din á m ica co n Lu is Ern e s t o "Ca n u t o " 1
2002 2002
co d ig o a s p . NET
1 2 d e o ct u b re d e 1 5 d e o ct u b re d e
e s t u d ia n t e pa ty 1
2002 2002
9 d e o ct u b re d e 1 5 d e o ct u b re d e
Ob je t o S e s s io n m a t a re s e 1
2002 2002
1 5 d e o ct u b re d e
Ja va S crip t ya re a j 0 -
2002
1 5 d e o ct u b re d e 1 5 d e o ct u b re d e
Ca n t id a d d e vis it a s Nico m ix 1
2002 2002
1 5 d e o ct u b re d e
Erro r d e AS P e IIS h u g o fa ja rd o 3 d e ju lio d e 2 0 0 2 1 2002
Co rre g ir có d ig o s in
1 4 d e o ct u b re d e 1 5 d e o ct u b re d e
n e ce s id a d d e Ca rlo s 1
2002 2002
co n e ct a rm e
Co n e xió n a Km yS QL 1 5 d e o ct u b re d e
Rica rd o 0 -
co n AS P 2002
Co m o co rro a s p d e s d e
1 4 d e o ct u b re d e
m i o rd e n a d o r co n Hyu n ke l 0 -
2002
win d o ws m e
Re q u e s t . Fo rm d e u n
1 1 d e o ct u b re d e 1 4 d e o ct u b re d e
ca m p o d e t e xt o co n S e rg io 2
2002 2002
va ria s lín e a s
Dis e ñ a r p á g in a s AS P 1 0 d e o ct u b re d e 1 1 d e o ct u b re d e
m a t ild a 4
s in co n e xió n 2002 2002
Re d ire ccio n a r e - m a il 1 7 d e s e p t ie m b re 1 1 d e o ct u b re d e
ku n t e n t 1
co n AS P de 2002 2002
1 0 d e o ct u b re d e 1 1 d e o ct u b re d e
co m p a ra r fe ch a s iva n illo 4
2002 2002
1 0 d e o ct u b re d e 1 1 d e o ct u b re d e
No m b re d e ca m p o o| O 1
2002 2002
« 1 2 3 4 5 6 7 8 9 10 11 ... »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
S e rv id o re s d e Ap lic a c io n e s J2 EE Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
1 8 d e o ct u b re d e
p ro b le m a s co n e jb y jb o s s Yica rt 0 -
2002
1 0 d e s e p t ie m b re 1 7 d e o ct u b re d e
To m ca t co m o S e rvicio NT Ed g a r 2
de 2002 2002
1 6 d e o ct u b re d e
La n za r u n HELP Lu is Alb e rt o 0 -
2002
1 4 d e o ct u b re d e 1 6 d e o ct u b re d e
co n e ct a r co n EJBs Lo co 1
2002 2002
p ro b le m a s co n 1 1 d e o ct u b re d e 1 5 d e o ct u b re d e
g u ille 1
s e t En t it yRe s o lve r 2002 2002
t e n g o q u e re in icia r t o m ca t 4 . 1 2 7 d e s e p t ie m b re 1 5 d e o ct u b re d e
jp e re z 1
a l m o d ifca r u n cla s s !!! de 2002 2002
1 5 d e o ct u b re d e
Co la b o ra ció n Ap a ch e + To m ca t LN 0 -
2002
9 d e o ct u b re d e
Ace n t o s y Ñ's e n We b lo g ic 6 . 1 Lillo 0 -
2002
Do cu m e n t a cio n d e 8 d e o ct u b re d e
Ce s a r 0 -
a rq u it e ct u ra s m u lt ica p a 2002
8 d e o ct u b re d e
a p a ch e 2 + t o m ca t iza s 0 -
2002
3 d e o ct u b re d e
in co n s is t e n t t h re a d ku s t u rica 0 -
2002
2 6 d e s e p t ie m b re
We b s p h e re JES US HC 3 2 d e o ct u b re d e 2 0 0 2
de 2002
MS Vis u a l S t u d io . Ne t 1 d e o ct u b re d e
MMvis u a ln e t 0 -
En t e rp ris e Arch it e ct ES 2002
m o d ifica r e l p ro ce s o d e
3 0 d e s e p t ie m b re
lo g in / p a s s wo rd d e win d o ws ka o s 0 -
de 2002
2000
2 0 d e s e p t ie m b re 2 8 d e s e p t ie m b re d e
d u d a : jd b c+ o ra cle + t o m ca t g u ille 3
de 2002 2002
¿ Qu é h a ce q u e p u e d a e je cu t a r 3 1 d e ju lio d e 2 6 d e s e p t ie m b re d e
m a n u p a rre s 1
Ja va 2 ? 2002 2002
2 6 d e s e p t ie m b re
JBu ild e r 7 co n We b lo g ic Ra q u e l 0 -
de 2002
1 8 d e s e p t ie m b re 2 5 d e s e p t ie m b re d e
We b Lo g ic cla s s Ju le n K 1
de 2002 2002
To m ca t n o e n cu e n t ra m is 5 d e s e p t ie m b re 2 0 d e s e p t ie m b re d e
jp e re z 1
p ro p e rt ie s !!! de 2002 2002
1 9 d e s e p t ie m b re 2 0 d e s e p t ie m b re d e
To m ca t y Ap a ch e e n Win 2 0 0 0 JPé re z 1
de 2002 2002
« 1 2 3 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Do cu m e n t a cio n | Re cu rs o s | Ta lle r Ja va
13 - abril 2002
El API Apache SOAP v2.2
Lib ro s
en la sección Marcos de
Premio IBEST2001 a la
Trabajo del TutorJava
mejor página personal
13 - Abril 2002
Nuevo artículo JDC Tech
Tips del 22 de Enero de
2002 en la zona Taller
Java.
5 - abril 2002
Comparativa de APIs
Java and XSLT Enterprise JavaBeans, 3rd Edition... Java para XML en el
Los mejores libros en:
TutorJava
Re c u rs o s
5 - Abril 2002
Enlaces a direcciones en las que encontrara recursos y aplicaciones Nuevo artículo JDC Tech
que haran más fácil la elaboración de tus aplicaciones Java. Tips del 10 de Enero de
2002 en la zona Taller
Más Java.
Ot ra s W e b s 3 - Abril 2002
Manual Básico de Struts
en el TutorJava
23 - Marzo 2002
Nuevo artículo JDC Tech
Tips del 20 de Diciembre
de 2001 en la zona Taller
Java.
Java Hispano
23 - Marzo 2002
Java en Telepolis
Nuevo artículo JDC Tech
Java World Tips del 4 de Diciembre
Servlets.com de 2001 en la zona Taller
On Java Java.
16 - Marzo 2002
Nuevo artículo JDC Tech
Tips del 20 de Noviembre
de 2001 en la zona Taller
Java.
Prin cip io Pá g in a
© 1 9 9 8 - 2 0 0 2 , Ju a n An t o n io Pa lo s ( Ozit o ) y Jo a q u in Bra vo .
Ja va e n ca s t e lla n o .
Es t a d ís t ic a s e n :
Do cu m e n t a ció n | Re cu rs o s | Ta lle r We b
He m o s g a n a d o FORMACI ÓN
En nuestro sitio
S i q u ie re s u n cu rs o
Bú s q u e d a a va n za d a Buscar p ro fe s io n a l d e HTML,
Ja va s crip t , Dre a m we a ve r
o Fla s h , vis it a e n n u e s t ro
D o c u m e n t a c ió n ca n a l d e fo rm a ció n la
a p re n d e ra a re a liza r s u s p á g in a s We b .
Formación en nuevas
tecnologías
Cu rs o s p ro p io s
Tu t o ria le s p ro p io s
HTML 4 . 0 P D F ARTÍ CULOS
Ma n u a le s , lis t a s d e co rre o , n e ws , e n la Re d
DHTML Lib ro s , re vis t a s . To d o s lo s a rt ícu lo s d e l
Ja va S crip t 1 . 2 y m u ch o m á s . . . 2 0 0 0 e n u n fich e ro PDF.
XML
EMP LEO
XHTML
Fro n t Pa g e Mo n o g rá fic o s s o b re : Ofe rt a s d e t ra b a jo e n
Te cn o lo g ía s d e la
Dre a m we a ve r
XML In fo rm a ció n .
XS L, XS LT y XPa t h No ve da de s
Fo ro s Ja va S crip t
1 6 - S e p t ie m b re 2 0 0 2
HTML WAP, WML, e t c.
Nu e vo a rt íc u lo e n e l
Ja va s crip t Ta lle r W e b : Cre a r u n
XML fich e ro ro b o t s . t xt .
2 0 - Ma y o 2 0 0 2
Y m u ch o s m á s Nu e vo a rt íc u lo e n e l
Ta lle r W e b Ta lle r W e b : Pro t e cció n
Lib ro s co n co n t ra s e ñ a s ( III) :
En Am a z ó n :
Se cció n e n la q u e p e rio d ica m e n t e ire m o s p u b lica n d o Va rio s u s u a rio s .
t ru c o s y c o n s e jo s .
5 - Ab ril 2 0 0 2
Nu e vo c a p ít u lo d e l Cu rs o
Lo ú lt im o . . . d e Ja v a s c rip t 1 . 2 :
Exp re s io n e s re g u la re s .
Cre a r u n fich e ro ro b o t s . t xt . 6 - D ic ie m b re 2 0 0 1
Pro t e cció n co n co n t ra s e ñ a s ( III) : Va rio s u s u a rio s . Nu e vo a rt íc u lo e n e l
Va lid a ció n d e l n ú m e ro d e cu e n t a ( CCC) . Ta lle r W e b : Va lid a ció n
d e l n ú m e ro d e cu e n t a
( CCC) .
Ot ro s
1 8 - N o v ie m b re 2 0 0 1
Ma p a d e l We b In a u g u ra d o s lo s fo ro s d e
Lis t a d e co rre o Pro g ra m a ció n e n
Re c u rs o s
ca s t e lla n o .
Ot ro s W e b s
En la ce s a d ire ccio n e s e n la s q u e e n co n t ra ra re cu rs o s 7 - Oc t u b re 2 0 0 1
y a p lica cio n e s q u e h a ra n m á s fá cil la e la b o ra ció n d e Qu in t a y ú lt im a e n t re g a
t u s p á g in a s . d e l cu rs o d e
Dre a m we a ve r.
Re cu rs o s g ra t is 3 0 - S e p t ie m b re 2 0 0 1
Cu a rt a e n t re g a d e l cu rs o
Ja va e n ca s t e lla n o d e Dre a m we a ve r.
AS P e n ca s t e lla n o
We b Es t ilo
DWEs
Prin cip io Pá g in a
© 1 9 9 8 - 2 0 0 2 , Da n ie l Ro d rig u e z y Jo a q u in Bra vo .
HTML e n ca s t e lla n o .
Es t a d ís t ic a s e n :
<?
#Cerramos el fichero
fclose($DescriptorFichero);
?>
$DescriptorFichero = fopen("fichero_prueba.txt","w");
Mo d o d e
Qu é s ig n ific a
a p e rt u ra
Mo d o d e s o lo le ct u ra . S e a b re e l fich e ro y e l
r cu rs o r s e co lo ca a l p rin cip io d e l m is m o ,
p e rm it ie n d o le e rlo h a s t a e l fin a l.
Mo d o d e le ct u ra / e s crit u ra . S e a b re e l fich e ro y e l
r+ cu rs o r s e co lo ca a l p rin cip io d e l
m is m o , p e rm it ie n d o le e r o e s crib ir e n e l fich e ro .
Mo d o d e s o lo e s crit u ra . S e cre a e l fich e ro s i n o
e xis t ie s e , y, s i e xis t e , s e b o rra t o d o s u
w
co n t e n id o , s e s it ú a e l cu rs o r a l p rin cip io d e l
fich e ro p e rm it ie n d o n o s e s crib ir.
Mo d o d e e s crit u ra / le ct u ra . S i e l fich e ro n o e xis t e ,
s e cre a , y, s i e xis t ie s e , s e b o rra t o d o s u
w+
co n t e n id o , s e s it ú a e l cu rs o r a l p rin cip io d e l
fich e ro p e rm it ié n d o n o s e s crib ir y le e r.
Mo d o d e a ñ a d id o . Ab re e l fich e ro , s it ú a e l cu rs o r
a l fin a l d e l m is m o y p e rm it e e s crib ir. S i e l fich e ro
a
n o e xis t e , lo cre a , p e ro , e n ca s o d e e xis t ir, n o
b o rra s u co n t e n id o .
Mo d o d e a ñ a d id o / le ct u ra . S it ú a e l cu rs o r a l fin a l
d e l fich e ro y p e rm it e e s crib ir y le e r. S i e l fich e ro
a+
n o e xis t e , lo cre a , p e ro , s i e xis t e , n o b o rra s u
co n t e n id o .
As í p u e s , e s t o s s o n lo s s e is m o d o s d e a b rir u n fich e ro . Va m o s a h o ra a ve r u n e je m p lo e n có d ig o d e l u s o d e
lo s m is m o s . El s ig u ie n t e s crip t va a h a ce r la s s ig u ie n t e s t a re a s :
e s c rib ir2 . p h p
<?
#Cerramos el fichero
fclose($DescriptorFichero);
#Cerramos el fichero
fclose($Descriptor2);
?>
le e r. p h p
<?
?>
le e r_ w p lu s . p h p
<?
$buffer = fgets($Descriptor2,4096);
echo $buffer."<BR>";
#Cerramos el fichero
fclose($Descriptor2);
?>
Co m o vé is , a l e je cu t a rlo , e l re s u lt a d o e s e l s ig u ie n t e :
le e r_ rp lu s . p h p
<?
$buffer = fgets($Descriptor2,4096);
echo $buffer."<BR>";
#Cerramos el fichero
fclose($Descriptor2);
?>
le e r_ a p lu s . p h p
<?
#Abrimos el fichero en modo w+
$Descriptor1 = fopen("nuevo_fichero.txt","w+");
$buffer = fgets($Descriptor2,4096);
echo $buffer."<BR>";
#Cerramos el fichero
fclose($Descriptor2);
?>
Es t o e s t o d o e n cu a n t o a m o d o s d e a p e rt u ra . En la s ig u ie n t e s e cció n va m o s a ve r co m o s u b ir fich e ro s a l
s e rvid o r, a lg o m u y ú t il cu a n d o s e t ra t a d e p á g in a s we b .
S u b ir fic h e ro s a l s e rv id o r
Pa ra e je m p lifica r la s u b id a d e a rch ivo s a l s e rvid o r, va m o s a ve r u n s crip t d e e je m p lo . El s crip t t ie n e d o s
p a rt e s ; la p rim e ra , e l fo rm u la rio , e n e l q u e s e in t ro d u ce e l fich e ro a ca rg a r, y la s e g u n d a p a rt e , e n la q u e s e
p ro ce s a la s u b id a y s e in fo rm a a l u s u a rio d e l é xit o o fra ca s o d e la ca rg a .
u p lo a d . p h p
<?
if(!isset($cargar)){
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>:: Formulario de carga de ficheros ::</TITLE>
</HEAD>
<BODY>
<TR>
<TD ALIGN="LEFT"><INPUT TYPE="FILE" NAME="elFichero"></INPUT></TD>
</TR>
<TR>
<TD ALIGN="LEFT"><INPUT TYPE="SUBMIT" VALUE="Subir el fichero">
</TR>
</TABLE>
</FORM></BODY></HTML>
<?
#Lo copiamos
if(!copy($elFichero,$nuevositio)){
echo "NO SE HA PODIDO SUBIR EL FICHERO";
}
else{
echo "FICHERO SUBIDO CON ÉXITO";
}
?>
u p lo a d _ m u lt ip le . p h p
<?
$txt ="<HTML><HEAD>\n";
$txt.="<TITLE>:: ¿Cuántos ficheros quiere subir hoy? ::</TITLE>\n";
$txt.="</HEAD><BODY>\n";
$txt.="<FORM NAME=\"frmNumFicheros\"
METHOD=\"POST\"
ACTION=\"".$PHP_SELF."?fich=1\">\n";
$txt.="<BR><BR><BR><BR>\n";
$txt.="<DIV ALIGN=\"CENTER\">\n";
$txt.="<INPUT TYPE=\"TEXT\" NAME=\"numFicheros\">\n";
$txt.=" ";
$txt.="<B>Introduce el número de ficheros</B>\n";
$txt.="<BR><BR>\n";
$txt.="<INPUT TYPE=\"SUBMIT\"
VALUE=\"Mostrar campos para subir ficheros\">\n";
$txt.="<BR></DIV>\n";
$txt.="</FORM></BODY></HTML>\n";
echo $txt;
}
$txt ="<HTML><HEAD>\n";
$txt.="<TITLE>:: ¿Cuántos ficheros quiere subir hoy? ::</TITLE>\n";
$txt.="</HEAD><BODY>\n";
$txt.="<FORM ENCTYPE=\"multipart-form/data\"
NAME=\"frmCargaFicheros\"
METHOD=\"POST\"
ACTION=\"".$PHP_SELF."?cargar=1&cantidad=".$HTTP_POST_VARS["numFicheros"]."\">\n";
for($i=0;$i<$HTTP_POST_VARS["numFicheros"];$i++){
$txt.="</FORM></BODY></HTML>\n";
echo $txt;
}
for($n=0;$n<$cantidad;$n++){
#Lo copiamos
if(!copy($valvar,$nuevositio)){
echo "NO SE HA PODIDO SUBIR EL FICHERO";
}
else{
echo "FICHERO SUBIDO CON ÉXITO";
}
}
?>
Fo rz a r d e s c a rg a d e fic h e ro s a l n a v e g a d o r
A ve ce s p u e d e s e r in t e re s a n t e q u e e l u s u a rio s e d e s ca rg u e e l fich e ro e n ve z d e ve rlo o n - lin e . Pa ra re a liza r
e s t a o p e ra ció n , s o lo n e ce s it a m o s u t iliza r e l s ig u ie n t e có d ig o q u e vo y a e xp lica r a co n t in u a ció n . El s crip t
co n s t a d e u n a s o la p a rt e . Va m o s a d e s ca rg a rn o s u n fich e ro . h t m l, e n ve z d e ve rlo e n e l n a ve g a d o r. El
n o m b re d e l fich e ro s e rá p ru e b a _ d e s ca rg a . h t m l. El có d ig o e s co m o s ig u e :
d e s c a rg a r. p h p
<?
function Descargar($ElFichero){
$TheFile = basename($ElFichero);
Descargar("prueba_descarga.html");
?>
Y co n e s t o t e rm in o e s t e t u t o ria l. Es p e ro q u e o s s e a ú t il, a u n q u e s e q u e e s co rt o . Es p o s ib le q u e e n o t ro
t u t o ria l p ró xim o m e e xt ie n d a m á s s o b re e s t e t e m a ( s o b re t o d o s i m is co n o cim e in t o s a u m e n t a n , je je ) .
De s ca rg a t e lo s fich e ro s d e l a rt ícu lo
Mu c h a s g ra c ia s . ( 2 5 / 0 9 / 2 0 0 2 )
Po r S a lva d o r
u n a m e jo ra ? ( 1 6 / 0 9 / 2 0 0 2 )
Po r m ikil
b a s a d o e n e s t e e je m p lo s e m e p la n t e a n d o s cu e s t io n e s :
1 . - co m o p u e d o p re a s ig n a r e l va lo r a la va ria b le q u e re co g e e l n o m b re d e l fich e ro ? He p ro b a d o co n va lu e y
m e p re s e n t a e l ca m p o e n b la n co
2 . - p u e d o s u b ir u n fich e ro s in q u e e l u s u a rio s e p a d o n d e e s t a ? o s e a , yo s e q u e fich e ro e s y d o n d e e s t a ,
p u e s lo s u b o a l s e rvid o r y lo d e jo e n s u s it io . Es e s t o p o s ib le
Ex c e le n t e . . !! ( 1 3 / 0 9 / 2 0 0 2 )
Po r Da n ie l Ra m o s
S ALUDOS . . !!
Gra c ia s ( 1 1 / 0 9 / 2 0 0 2 )
Po r m a n u e l
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Re g is t ra rs e e n P ro g ra m a c ió n e n c a s t e lla n o
S i q u ie re s p a rt icip a r e n fo ro s , re cib ir la s ú lt im a s n o ve d a d e s d e p ro g ra m a ció n e n ca s t e lla n o
m e d ia n t e co rre o e le ct ró n ico o a cce d e r a la d o cu m e n t a ció n e n fo rm a t o PDF o ZIP, d e b e ra s
re g is t ra rt e . Pa ra e llo , re lle n a e l s ig u ie n t e fo rm u la rio t e n ie n d o e n cu e n t a q u e lo s ca m p o s s e ñ a la d o
p o r ( * ) s o n o b lig a t o rio s .
No m b re : (*)
Ap e llid o s : (*)
E- m a il: (*)
Pa ís : AFGANISTAN (*)
Us u a rio : (*)
Co n t ra s e ñ a : (*)
Re p e t ir co n t ra s e ñ a : (*)
Do m icilio :
Nú m e ro : Pis o / p la n t a / e s ca le ra / p u e rt a
Có d ig o p o s t a l:
Po b la ció n :
S e xo : Ho m b re Mu je r
Enviar
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo rm u la rio d e c o n t a c t o
S i d e s e a p o n e rs e e n co n t a ct o co n Pro g ra m a ció n e n ca s t e lla n o S . L. , p o r fa vo r re lle n e e l s ig u ie n t e
fo rm u la rio . Re cu e rd e q u e p a ra re a liza r co n s u lt a s e xis t e n u n o s fo ro s d e d is cu s ió n d o n d e le s
re s p o n d e rá n m u ch o m e jo r y m á s rá p id o d e lo q u e n u n ca p o d ría m o s lo g ra r n o s o t ro s s o lo s :
Mo t ivo d e s u co n s u lt a :
-- Elegir opción --
S u m e n s a je :
Enviar Borrar
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
D a t o s le g a le s
Pro g ra m a cio n e n Ca s t e lla n o , S . L.
B1 3 3 4 4 5 4 4
Cl. Me s o n e s , 9
1 3 6 4 0 He re n cia
Ciu d a d Re a l
Es p a ñ a
Te lé fo n o 9 0 2 3 3 3 9 3 2 ( n o s e d a n in g u n t ip o d e s o p o rt e p o r t e le fo n o )
Fa x. 9 2 6 5 7 4 0 3 7
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Bú s q u e d a
En nuestro sitio Buscar
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
Ba s e s d e
da to s
5 cu rs o s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Ora cle ( 1 )
● S QL ( 1 )
● Te o ría d e b a s e s d e d a t o s @ ( 1 )
Op e ra c io n e s a v a n z a d a s c o n JD BC y Ja v a
Le e r co m e n t a rio s ( 5 ) | Pu n t u a ció n : ( 3 vo t o s )
Op e ra cio n e s Ava n za d a s co n Ba s e s d e Da t o s Us a n d o JDBC P o r I BM.
Ma n e ja r Co n e x io n e s a Ba s e s d e D a t o s c o n JD BC 3 . 0
Le e r co m e n t a rio s ( 2 2 ) | Pu n t u a ció n : ( 3 7 vo t o s )
Op e ra cio n e s Ava n za d a s co n Ba s e s d e Da t o s Us a n d o JDBC P o r I BM.
Ac c e s o a Ba s e s d e D a t o s [ JD BC]
Le e r co m e n t a rio s ( 1 4 9 ) | Pu n t u a ció n : ( 1 2 6 vo t o s )
Es t e t u t o ria l p re s e n t a lo s t ó p ico s n e ce s a rio s p a ra la p ro g ra m a ció n d e Acce s o a Ba s e s d e Da t o s e n
Ja va co n JDBC P o r S u n .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
En t o rn o s d e
d e s a rro llo
1 cu rs o
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Vis u a l Ba s ic ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
● De s a rro llo we b ( 2 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
I n t e rn e t
2 6 cu rs o s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● AS P ( 4 )
● Fla s h ( 2 )
● HTML ( 2 )
● PHP ( 3 )
● S VG y VML ( 1 )
● WAP ( 1 )
● XML ( 1 1 )
● XS L, XS LT y Xp a t h ( 2 )
● Ja va @ ( 6 4 )
● Ja va s crip t @ ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
Le n g u a je s
d e s c rip t
4 cu rs o s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Ja va s crip t ( 1 )
● Pe rl ( 1 )
● Pyt h o n ( 2 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
Le n g u a je s
o rie n t a d o s
a o b je t o
6 5 cu rs o s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● C# ( 1 )
● Ja va ( 6 4 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
Ot ro s
le n g u a je s
3 cu rs o s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Pro lo g ( 3 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
S is t e m a s
o p e ra t iv o s
1 cu rs o
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Lin u x ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Cu rs o s . Nuestras zonas
Te o ría
1 cu rs o
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Te o ría d e b a s e s d e d a t o s ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Ba s e s d e
da to s
2 a rt ícu lo s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● MyS QL ( 1 )
AP I s XML p a ra Ba s e s d e D a t o s
Le e r co m e n t a rio s ( 4 ) | Pu n t u a ció n : ( 1 7 vo t o s )
Us o d e la s APIs XML S AX y DOM p a ra a cce d e r a b a s e s d e d a t o s . P o r S u n .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
En t o rn o s d e
d e s a rro llo
2 a rt ícu lo s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Vis u a l Ba s ic ( 1 )
● Vis u a l C+ + ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
● De s a rro llo we b ( 1 )
● Ed it o re s ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
I n t e rn e t
5 0 a rt ícu lo s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● AS P ( 1 7 )
● CS S ( 2 )
● Ge n e ra le s ( 1 )
● HTML ( 5 )
● PHP ( 1 0 )
● S VG y VML ( 2 )
● WAP ( 1 )
● XML ( 7 )
● XS L, XS LT y Xp a t h ( 5 )
● Ja va @ ( 2 7 )
● Ja va s crip t @ ( 2 2 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
d e s c rip t
2 3 a rt ícu lo s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Ja va s crip t ( 2 2 )
● Pyt h o n ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
im p e ra t iv o s
1 a rt ícu lo
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● En s a m b la d o r ( 1 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Le n g u a je s
o rie n t a d o s
a o b je t o
2 7 a rt ícu lo s
La s m e jo re s p lu m a s ( b u e n o . . . t e cla d o s ) e s crib e n p a ra Pro g ra m a ció n e n ca s t e lla n o s o b re t e m a s d e
in t e ré s p a ra e l p ro g ra m a d o r.
● Ja va ( 2 7 )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
C / C+ + Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
As u n t o Us u a rio Fe c h a Re s p u e s t a s Últ im a re s p u e s t a
1 9 d e o ct u b re d e
n e ce s it o co d ig o fu e n t e yo _ 0 -
2002
Ma n e jo d e s o cke t s b a jo 1 8 d e o ct u b re d e
JOS E 0 -
c+ + 6 2002
Po r fa vo r n e ce s it o u n a
Cé s a r 2 8 d e m a yo d e 2 0 0 2 3 1 8 d e o ct u b re d e 2 0 0 2
a yu d a
Ayu d a ! Co m o co n fig u ro 1 8 d e o ct u b re d e
Ju a n Jo 0 -
Tu rb o 3 . 1 fo r win d o ws 2002
1 8 d e o ct u b re d e
e d it o r c/ c+ + h ilo s lin u x ja q y 0 -
2002
1 7 d e o ct u b re d e
m is p ro p ia s lib re ria s n a b u cco 0 -
2002
1 1 d e o ct u b re d e
S o n id o e n C ro m e ro a n d re s 1 1 6 d e o ct u b re d e 2 0 0 2
2002
Pa s e n m e p ro g ra m a s e n c y 1 6 d e o ct u b re d e
Ju a n 0 -
c+ + 2002
1 5 d e o ct u b re d e
a rb o le s b + Alg u ie n 0 -
2002
p ro b le m a co n e s t e 1 3 d e o ct u b re d e
ra fa 2 1 4 d e o ct u b re d e 2 0 0 2
p ro g ra m a 2002
Alg u ie n s a b e cu a l e s e l
1 7 d e s e p t ie m b re d e
a lg o rit m o d e la fu n cio n q u e Pe p e 2 1 3 d e o ct u b re d e 2 0 0 2
2002
g e n e ra n u m e ro s a le a t o rio s
1 1 d e o ct u b re d e
Lib re ría s ys t e m . h Jo s e Lu is 2 1 3 d e o ct u b re d e 2 0 0 2
2002
Ma n e jo d e l p u e rt o s e rie e n 1 4 d e m a rzo d e
fa fis 3 1 1 d e o ct u b re d e 2 0 0 2
C. 2002
m a n u a l d e d e v- c+ + 4 e n 1 1 d e o ct u b re d e
jo s e p e 8 2 1 9 0 -
e s p a ñ o l? ? ? 2002
Vis u a l C e je cu t a n d o Vis u a l 1 1 d e o ct u b re d e
Jo rd i 0 -
Ba s ic 2002
1 0 d e o ct u b re d e
rs 2 3 2 y c m a n o lo 0 -
2002
3 0 d e s e p t ie m b re d e
Lib ro d e C+ + . : Ga b y: . 3 1 0 d e o ct u b re d e 2 0 0 2
2002
m o d ifica r e l p ro ce s o d e
2 d e o ct u b re d e
lo g in / p a s s wo rd d e win d o ws n u e vo 1 1 0 d e o ct u b re d e 2 0 0 2
2002
2000
« 1 2 3 4 5 6 7 8 9 10 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
D e lp h i / Ky lix / C+ + Bu ild e r Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
Bu s co p ro g ra m a d o re s p a ra p ro ye ct o 3 1 d e m a rzo 1 9 d e o ct u b re
Ma u ricio 3
S IN FINES DE LUCRO. . . de 2002 de 2002
cre a ció n d e d b f d e s d e d e lp h i p a ra s e r 24 de
1 9 d e o ct u b re
im p o rt a d o s d e s d e o t ro s p ro g ra m a s t rin it i s e p t ie m b re d e 1 de 2002
co m o Win Fa x 2002
S a yra
Ne ce s it o a yu d a p a ra h a ce r 6 d e o ct u b re 1 9 d e o ct u b re
Ve ro n ica 1
a lg o rit m o , e s t ru ct u ra , p ro g ra m a de 2002 de 2002
Pu lid o M.
1 9 d e o ct u b re
Ayu d a p o r fa vo r liu xu s 0 -
de 2002
1 9 d e o ct u b re
!!!!!!!!!!!! u rg e n t e ¡¡¡¡¡¡¡¡¡¡ liu xu s 0 -
de 2002
1 9 d e o ct u b re
co n s u lt a ADOQu e ry liu xu s 0 -
de 2002
1 4 d e o ct u b re
h a n d le s d e ve n t a n a s !! e lia 0 -
de 2002
1 2 d e fe b re ro 1 2 d e o ct u b re
re d , b a s e d e d a t o s e n d e lp h i wa lt e r 2
de 2002 de 2002
30 de
9 d e o ct u b re d e
An s iS t rin g a u n a Fu n ció n Gre e n Go s e p t ie m b re d e 1 2002
2002
Co m o p u e d o co p ia r t o d a la p a n t a lla a l 9 d e o ct u b re
Wo lve rick 0 -
p o rt a p a p e le s ? de 2002
9 d e o ct u b re
El m e jo r RAD Lu ca s 0 -
de 2002
9 d e o ct u b re
Da t o s p o r p a ra le lo . En De lp h i Do u g la s J. 0 -
de 2002
8 d e o ct u b re
De n m e s u o p in io n Lu ca s 0 -
de 2002
7 d e o ct u b re
e rro re s e n b a s e s d d a t o s Ja 0 -
de 2002
4 d e o ct u b re
Dis t rib u ir BCB 1 Flip 0 -
de 2002
1 d e o ct u b re 4 d e o ct u b re d e
in t e g ra le s ro g e rt 2
de 2002 2002
Op e ra r co n va ria b le s in t y d o u b le e n 29 de
6 d e fe b re ro
Da vid Urp í 2 s e p t ie m b re d e
C+ + Bu ild e r de 2002
2002
26 de
a s is t rin g Ed u a d a n s e p t ie m b re d e 0 -
2002
OLIVARES 24 de
AS OCIACION OLIVARES 2 0 0 0 s e p t ie m b re d e 0 -
2000 2002
20 de
9 d e e n e ro d e
C+ + Bu ild e r p a ra Lin u x Es t e b a n 1 s e p t ie m b re d e
2002
2002
« 1 2 3 4 5 6 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
Ge n e ra l Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
1 7 d e o ct u b re d e
Re g is t ra r LOG e n BD An d re a 0 -
2002
a ve r q o s p a re ce e s t a we b , 1 7 d e o ct u b re d e
za p a m ix 0 -
g ra cia s 2002
1 6 d e o ct u b re d e
INFERNO y LIMBO Do n 0 -
2002
1 6 d e o ct u b re d e
Urg e n t e !!!!!!!!!!!!! PEKE 0 -
2002
1 0 d e o ct u b re d e
¿ EXE d e Vb 6 s in in s t a la cio n ? An o n im o 0 -
2002
q u é p ro g ra m a u t iliza r p a ra
9 d e o ct u b re d e
cre a r u n t u t o ria l d e m i anaa 0 -
2002
a p lica ció n
2 d e o ct u b re d e
Cre a r u n ico n o e p e re z 1 3 d e o ct u b re d e 2 0 0 2
2002
2 3 d e s e p t ie m b re
Mu n d o In t e rn e t . Aza ze l 1 1 d e o ct u b re d e 2 0 0 2
de 2002
2 8 d e s e p t ie m b re 2 8 d e s e p t ie m b re d e
Arch ivo s d e s co n o cid o s Ja zm in E. L. 1
de 2002 2002
b u s q u e d a d e p ro g ra m a p a ra 2 8 d e s e p t ie m b re
js a rrio 0 -
t a rje t a s de 2002
2 8 d e s e p t ie m b re
Te rm in a l S e rve r e m o lin a h 0 -
de 2002
AYUDA : COMANDO 2 7 d e s e p t ie m b re
R. 0 -
BUS QUEDA DES APARECIÓ. . de 2002
2 1 d e s e p t ie m b re 2 3 d e s e p t ie m b re d e
le n g u a je s d e co m p u t a d o ra m a ta dor 1
de 2002 2002
2 2 d e s e p t ie m b re
CD/ DVD- ROM Xib e r 0 -
de 2002
1 2 d e m a rzo d e 2 2 d e s e p t ie m b re d e
Ab rir a rch ivo s . d a t Pe d ro Qu ija n o 2
2002 2002
S e m e a b re n cie n t o s d e 1 9 d e s e p t ie m b re
Nie ve s 0 -
p a g in a s we b de 2002
Alg u ie n m e p u e d e e xp lica r
12 de a gosto de 1 8 d e s e p t ie m b re d e
co m o t ra b a ja n lo s An g e l4 0 3
2002 2002
in s t a la d o re s d e p ro g ra m a s
1 8 d e s e p t ie m b re
Ayu d a co n Fla s h Sa nti 0 -
de 2002
« 1 2 3 4 5 6 7 8 9 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
Ja v a ( S e rv le t s y JS P ) Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
As u n t o Us u a rio Fe c h a Re s p u e s t a s Últ im a re s p u e s t a
Co m o im p rim ir t a b la s 1 9 d e o ct u b re d e
Cris 0 -
d in a m ica s co n js p 2002
Gu s t a vo Gu t ie rre z 1 8 d e o ct u b re d e
m a n e jo d e l lo g d e t o m ca t 0 -
A. 2002
1 8 d e o ct u b re d e
VB A - > Ja va S e rvle t fro m e r 0 -
2002
Pa s a r e l va lo r d e u n a
1 7 d e o ct u b re d e
va ria b le a ja va d e s d e jo lin 2 1 0 -
2002
h t m l o ja va s crip t
p ro b le m a s p a ra lla m a r 1 5 d e o ct u b re d e
m a rio 0 -
s e rvle t s y js p 2002
Cla s e s g rá fica s y 1 5 d e o ct u b re d e
g e ra ru n h a 0 -
s e rvid o re s X 2002
Pro b le m a s co n 8 d e o ct u b re d e
rb ld 2 1 5 d e o ct u b re d e 2 0 0 2
p a rá m e t ro s 2002
Pro b le m a s a l co m p ila r u n 1 0 d e o ct u b re d e
la b 1 1 5 d e o ct u b re d e 2 0 0 2
s e rvle t 2002
1 1 d e d icie m b re
JS P s t ib ca s a 1 1 5 d e o ct u b re d e 2 0 0 2
de 2001
Ce rra r u n a p a g HTML
9 d e o ct u b re d e
cre a d a co n u n s e rvle t s in Ge m a Nu ñ e z 4 1 4 d e o ct u b re d e 2 0 0 2
2002
q u e p id a co n firm a cio n
1 2 d e o ct u b re d e
JS P y Ora cle 8 i/ 9 i Ro o t 0 -
2002
Alg u ie n m e p u e d e a yu d a r 1 1 d e o ct u b re d e
s ilvit a 1 1 1 d e o ct u b re d e 2 0 0 2
co n JS P 2002
Co m o p u e d e e je cu t a r 9 d e o ct u b re d e
Da vid 1 1 1 d e o ct u b re d e 2 0 0 2
s e rve lt s 2002
Pro b le m a s a l co m p ila r u n 1 0 d e o ct u b re d e
la b 1 1 1 d e o ct u b re d e 2 0 0 2
s e rvle t II 2002
1 0 d e o ct u b re d e
JS P Ro s i 1 1 1 d e o ct u b re d e 2 0 0 2
2002
1 1 d e o ct u b re d e
In s t a la ció n d e t o m ca t Da vid 1 1 1 d e o ct u b re d e 2 0 0 2
2002
9 d e e n e ro d e
Ca rg a d e fich e ro s Pa Ma Y 3 1 0 d e o ct u b re d e 2 0 0 2
2002
Qu ie re s Vis u a l Ag e fo r
9 d e o ct u b re d e
Ja va 4 ? , We b S p h e re ja s is t e m a s 0 -
2002
S t u d io ?
Alg u ie n m e p u e d e 9 d e o ct u b re d e
la b 1 9 d e o ct u b re d e 2 0 0 2
e xp lica r e s t o p o r fa vo r!!!! 2002
« 1 2 3 4 5 6 7 8 9 10 11 ... »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
Ja v a y XML Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
8 d e o ct u b re d e 1 7 d e o ct u b re d e
e xce l a xm l Ed g a r 1
2002 2002
¿ Co m o h a g o p a ra h a ce r co rre r 1 0 d e o ct u b re
Tit o 0 -
s o a p e n Ap a ch e t o m ca t ? de 2002
XS LFO, Co m o p o d e r e s crib ir t e xt o 13 de
1 0 d e o ct u b re d e
Jo s e Ma n u e l s e p t ie m b re d e 1
e n ve rt ica l 2002
2002
9 d e o ct u b re d e
Ja va We b S t a rt a rie le lm e jo r 0 -
2002
2 d e o ct u b re d e
co m p ila r/ e je cu t a b le ra t it a llo ro n a 0 -
2002
m o d ifica r e l p ro ce s o d e 30 de
ka o s s e p t ie m b re d e 0 -
lo g in / p a s s wo rd d e win d o ws 2 0 0 0 2002
18 de
2 5 d e s e p t ie m b re
co m o b o rra r e n u n jt re e m a ria s e p t ie m b re d e 1 de 2002
2002
24 de
2 5 d e s e p t ie m b re
XML e n s e rvid o r y a p p le t jb a rre iro s e p t ie m b re d e 3 de 2002
2002
25 de
2 5 d e s e p t ie m b re
Ap p le t s y xm l p a kico s e p t ie m b re d e 1 de 2002
2002
6 d e s e p t ie m b re 2 3 d e s e p t ie m b re
lla m a d a s a l S . O d e s d e Ja va Ju a n 1
de 2002 de 2002
22 de
Ba s e d e Da t o s e n XML co n JAVA Mich a e l ET s e p t ie m b re d e 0 -
2002
Co m o h a ce r u n co m p ila d o r p a ra 18 de
Cé s a r s e p t ie m b re d e 0 -
s e n t e n cia s s q l e n ja va ? 2002
2 0 d e e n e ro d e 1 2 d e s e p t ie m b re
Pa s a r xm l a o t ro xm l s ra rro b a 2
2002 de 2002
9 d e s e p t ie m b re
Ha ce r u n co m p ila d o r e n Ja va Ma rle n y 0 -
de 2002
9 de a gosto de 2 d e s e p t ie m b re d e
lib ro xm l & ja va d e Ore illy ta nny 1
2002 2002
20 de a gosto de 27 de a gosto de
Pa rs e o in co rre ct o XML- XS L t it o 3
2002 2002
27 de a gosto de
Pa rs e a r va lid a n d o co n e s q u e m a s ca s i4 1 6 0 -
2002
5 de a gosto de 21 de a gosto de
va ria b le s e n xm l? Txiki_ 3 1
2002 2002
1 6 d e m a yo d e 17 de a gosto de
Im p re s io n Hu g o 3
2002 2002
« 1 2 3 4 5 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
Ja v a s c rip t Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
As u n t o Us u a rio Fe c h a Re s p u e s t a s Últ im a re s p u e s t a
2 6 d e s e p t ie m b re
d e cim a le s je s u s 1 1 0 d e o ct u b re d e 2 0 0 2
de 2002
9 d e o ct u b re d e
Co n ve rcio n Irm a 1 1 0 d e o ct u b re d e 2 0 0 2
2002
p a s o d e va ria b le 9 d e o ct u b re d e
je s u s 0 -
ja va s crip t 2002
Un o b s e q u io d e
Wo lve rin e p a ra m is 2 4 d e m a rzo d e
Wo lve rin e 3 8 d e o ct u b re d e 2 0 0 2
a m ig o s d e l fo ro : "Re lo j 2002
e n la b a rra d e e s t a d o "
Pro b le m o n co n lo s 8 d e o ct u b re d e
Ma rco s 0 -
m e n u s d e s p le g a b le s 2002
Ca m b ia r u n a im a g e n
7 d e d icie m b re d e
d e u n fra m e d e s d e o t ro POX 3 8 d e o ct u b re d e 2 0 0 2
2001
fra m e
S e le ccio n a r t e xt o 3 d e o ct u b re d e
Ara m ra m 1 7 d e o ct u b re d e 2 0 0 2
d e n t ro d e u n Te xt Are a 2002
4 d e o ct u b re d e
De s ce rg a r Fich e ro s De xt e r 0 -
2002
o cu lt a r y d e s o cu lt a r 3 d e o ct u b re d e
je s u s 1 3 d e o ct u b re d e 2 0 0 2
botone s 2002
Me n ú d e s p le g a b le
2 3 d e fe b re ro d e
( o b s e q u io d e Wo lve rin e Wo lve rin e 10 1 d e o ct u b re d e 2 0 0 2
2002
a m is a m ig o s d e l fo ro )
ja va s crip t e lim in a r lo s
2 8 d e s e p t ie m b re 3 0 d e s e p t ie m b re d e
s a lt o s d e lin e a d e u n fo re n a i 1
de 2002 2002
t e xt a re a
co m u n ica cio n e n t re 2 6 d e s e p t ie m b re 2 7 d e s e p t ie m b re d e
in ya ki 1
ve n t a n a s de 2002 2002
Erika Ale xa n d ra 1 9 d e s e p t ie m b re 2 7 d e s e p t ie m b re d e
JAVA S CRIPT 2
Villa b o n a Le ó n de 2002 2002
2 5 d e s e p t ie m b re 2 6 d e s e p t ie m b re d e
Fra m e s Ra s t ro 1
de 2002 2002
Pro b le m a co n m e n u 2 3 d e s e p t ie m b re 2 5 d e s e p t ie m b re d e
m e n d ru g o 2
d e s p le g a b le de 2002 2002
p ro b le m a s co n 2 5 d e s e p t ie m b re
Lo re t o 0 -
n e t s ca p e de 2002
2 5 d e s e p t ie m b re
Co m b o e d it a b le Ju ls 0 -
de 2002
« 1 2 3 4 5 6 7 8 9 10 11 ... »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Fo ro s d e Nuestras zonas
de ba te
P e t ic ió n d e fo ro s n u e v o s Buscar
Lis t a d e fo ro s | Nu e vo a s u n t o
Últ im a
As u n t o Us u a rio Fe c h a Re s p u e s t a s
re s p u e s t a
fo ro j2 m e p a ra 1 4 d e fe b re ro d e 1 9 d e o ct u b re d e
m i_ n ick 3
m o vile s 2002 2002
Nu e vo Fo ro De 1 7 d e m a rzo d e 1 7 d e o ct u b re d e
] ] [ a ] [ n [ u ] [ b ] [ i] [ s ] [ [ 1
S crip t in g 2002 2002
Fo ro s d e Ora cle 15 de
1 6 d e o ct u b re d e
Re p o rt s , Ora cle yva n _ t e rry s e p t ie m b re d e 1 2002
Fo rm s y PL/ S QL 2002
Ca m b ia r p a s s wo rd 7 d e o ct u b re d e
Os ca r 0 -
g ru p o d e t ra b a jo . 2002
2 2 d e m a rzo d e 7 d e o ct u b re d e
va cia r e l lis t b o x Ro s a 1
2002 2002
3 d e o ct u b re d e
Fo ro s o b re CMS Triki 0 -
2002
Pro g ra m a r p a ra 2 8 d e d icie m b re 3 d e o ct u b re d e
Ta u fp a t e 2
Pa lm !!!! de 2001 2002
Re d im e n s io n d e 2 d e o ct u b re d e
Txin o 0 -
p ro g ra m a 2002
MS Acce s s 9 7 a 2 d e o ct u b re d e
Os ca r 0 -
MCAcce s s XP 2002
2 2 d e e n e ro d e 2 1 d e s e p t ie m b re
Po we rBu ild e r 7 . 0 S e rg io He rn a n d e z 3
2002 de 2002
HOLA m i n o m b re e s 8 d e m a rzo d e 1 9 d e s e p t ie m b re
HOLA m i n o m b re e s An a 1
An a 2002 de 2002
17 de
Un fo ro d e C# fLIPIS s e p t ie m b re d e 0 -
2002
b u s co d e s co m p ila d o r 2 1 d e m a rzo d e 1 7 d e s e p t ie m b re
d a vid 1
u rg e n t e 2002 de 2002
30 de a gosto de
Fo ro d e Pe rl a le x 0 -
2002
30 de a gosto de
S o b re c# pe pa to 0 -
2002
Pa s ca l, e l le n g u a je d e 3 0 d e n o vie m b re 26 de a gosto de
Vict o rS a n ch e z2 7
lo s u n ive rs it a rio s de 2001 2002
Pro b le m a co n 23 de a gosto de
Fra n 0 -
Ms Acce s s 2002
¿ Pa ra cu á n d o u n fo ro 13 de a gosto de
h e rra iz 0 -
d e Pyt h o n ? 2002
S o ft o n ic. co m co n 8 de a gosto de
Xa n 0 -
J2 ME !!! 2002
« 1 2 3 4 5 6 »
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Re g is t ra rs e e n P ro g ra m a c ió n e n c a s t e lla n o
No m b re : (*)
Ap e llid o s : (*)
E- m a il: (*)
Pa ís : ESPAÑA (*)
Us u a rio : (*)
Co n t ra s e ñ a : (*)
Re p e t ir co n t ra s e ñ a : (*)
Do m icilio :
Nú m e ro : Pis o / p la n t a / e s ca le ra / p u e rt a
Có d ig o p o s t a l:
Po b la ció n :
S e xo : Ho m b re Mu je r
Enviar
Ac u e rd o d e c o la b o ra c ió n e n t re Cib e ra u la y P ro g ra m a c io n
Co n d ic io n e s d e la o fe rt a
( 1 ) De s cu e n t o d e l 1 0 1 Eu ro s ( 1 6 . 8 0 5 p t a s . ) e n la m a t rícu la d e cu a lq u ie ra d e lo s s ig u ie n t e s
cu rs o s :
Re q u is it o s p a ra u t iliz a r e s t a o fe rt a
Má s in fo rm a c ió n
Te ls : De s d e Es p a ñ a : 9 1 3 0 3 5 8 0 0 - 9 1 7 7 8 1 5 0 9
De s d e fu e ra d e Es p a ñ a , a ñ a d ir p re fijo 3 4 a n t e s d e m a rca r e l n ú m e ro
Fa x : De s d e Es p a ñ a : 9 1 3 8 0 3 6 4 1
De s d e fu e ra d e Es p a ñ a a ñ a d ir p re fijo 3 4 a n t e s d e m a rca r e l n ú m e ro
D ire c c ió n : c/ Villa lo b o s , 1 3 5 - 2 8 0 3 8 Ma d rid ( Es p a ñ a )
E- m a il: p ro g n e t @cib e ra u la . co m
Pa ra co n s u lt a r d is p o n ib ilid a d d e p la za s y fo rm a d e m a t ricu la rs e e n vía n o s u n m e n s a je .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 1 , Jo a q u in Bra vo , Da n i Ro d rig u e z, Da vid Ca rre ro y Ale x Mo ra le s
Pro g ra m a ció n e n ca s t e lla n o .
e - m a il
3 6 2 2 6 s u b s crit o s
Subscribirse
Bo le t ín d e n o t ic ia s
FORMACION
Ciclo s fo rm a t ivo s
De s a rro llo
Dis e ñ o g rá fico
In g e n ie ría d e s is t e m a s
Ofim á t ica & S e cre t a ria d o
MARCAS
MICROS OFT
MACROMEDIA
Es p e c ia le s S e rin t e r in fo rm a
ORACLE
S u n Micro s ys t e m s To d o s n u e s t ro s ciclo s fo rm a t ivo s e s t á n La g ra n m a yo ría d e la s p ro fe s io n e s q u e t e
h o m o lo g a d o s p o r e l Min is t e rio d e Ed u ca ció n , o fre ce m o s e s t á n a va la d a s p o r ce rt ifica cio n e s
TECNOLOGIAS o ficia le s o e m p re s a s líd e re s . En t re lo s o rg a n is m o s
. NET Cu lt u ra y De p o rt e y p o r la Un ive rs id a d d e
q u e p o d rá n a va la r t u p re s t ig io y re co n o cim ie n t o
Ca m b rid g e . ( click a q u í) .
XML p e rs o n a l s e e n cu e n t ra e l Min is t e rio d e e d u ca ció n y
VARIOS cie n cia , S u n Micro s ys t e m s , Micro s o ft y Ora cle .
Qu ie n e s S o m o s
Fo rm a ció n a Dis t a n cia
Pla n o d e s it u a ció n Ma s t e rs e s p e c ia liz a d o s
In s t a la cio n e s MAS TER EN P ROGRAMACI ÓN EN VI S UAL S TUD I O. N ET ( D is p o n ib le ON - LI N E)
Alq u ile r d e a u la s Tu m e jo r AVAL PROFES IONAL.
Co n ve rs o r d e m o n e d a s · Fu n d a m e n t o s d e p ro g ra m a ció n .
AFILIACIÓN/ WEBMAS TERS · S QL.
Co n t a ct a r · XML.
· Pla t a fo rm a . NET.
· Le n g u a je C# .
· Acce s o a Ba s e d e d a t o s co n ADO. NET.
· De s a rro llo d e a p lica cio n e s Win d o ws co n . NET.
· De s a rro llo d e a p lica cio n e s We b co n AS P. NET.
· We b S e rvice s co n . NET.
Us u a rio Co n t ra s e ñ a Entrar
MAS TER D E MOD ELI ZACI ÓN Y D ES ARROLLO D E AP LI CACI ON ES EN JAVA
Ap re n d e e l le n g u a je d e p ro g ra m a ció n d e d e s a rro llo m á s d e m a n d a d o e n la a ct u a lid a d p o r la s
e m p re s a s d e d e s a rro llo d e a p lica cio n e s y d e In t e rn e t .
Us u a rio s re g is t ra d o s
Co n e s t e m a s t e r e l a lu m n o a p re n d e rá a a n a liza r lo s re q u e rim ie n t o s d e u n a a p lica ció n ( d e
g e s t ió n o d e In t e rn e t ) , m o d e la rlo s y d e s a rro lla rlo s e n le n g u a je JAVA. As í m is m o e l a lu m n o
a p re n d e rá lo s co n o cim ie n t o s n e ce s a rio s d e Ba s e s d e Da t o s p a ra p o d e r im p le m e n t a r d ich a s
s o lu cio n e s .
a p lica cio n e s B2 B.
· Re co p ila r in fo rm a ció n s o b re lo s p ro ce s o s d e n e g o cio , s u s re t o s y la vis ió n .
· De t e rm in a r re q u e rim ie n t o s d e u s u a rio .
· Mo d e liza rá s p ro ce s o s d e n e g o cio e xis t e n t e s .
· An a liza rá s lo s re q u e rim ie n t o s e n e l co n t e xt o d e l p ro p io n e g o cio .
· Cre a rá s u n p la n d ire ct o r d e d e s a rro llo .
· Cre a rá s u n d o cu m e n t o d e e s p e cifica cio n e s o rg á n ica s .
· De s a rro lla rá s la a p lica ció n re s u lt a n t e e n JAVA, JAVAS CRIPT, AS P d e p e n d ie n d o d e lo s re q u e rim ie n t o s .
· De s a rro lla rá s p re s e n t a cio n e s e n FLAS H p a ra t u s it io we b .
· Do m in a r co n ce p t o s d e Us a b ilid a d y EXPERIENCIA d e u s u a rio e n d is e ñ o d e p á g in a s WEB.
Cu rs o s m o n o g rá fic o s
CURS O D E FLAS H MX Y FLAS H EN 3 D ( D is p o n ib le ON - LI N E)
Ma cro m e d ia Fla s h MX e s t á lle g a n d o , s u s p o s ib ilid a d e s s o n t a n in cre ib le s q u e p o d ría d e cirs e q u e
e l e q u ip o d e Ma cro m e d ia s e h a s u p e ra d o u n a ve z m á s .
Co n e s t e cu rs o e l a lu m n o d o m in a rá la t e cn o lo g ía d e Fla s h , a s í co m o a lg u n a s d e la s p o s ib ilid a d e s q u e
Fla s h MX n o s o fre ce rá e n u n fu t u ro m u y p ró xim o .
Ca le n d a rio
● Cre a rá s u n d o cu m e n t o d e e s p e c ific a c io n e s o rg á n ic a s .
● 01-10-02 - 26-06-03
● D e s a rro lla rá s la a p lic a c ió n re s u lt a n t e e n JAVA, JAVAS CRIPT, AS P d e p e n d ie n d o d e lo s
re q u e rim ie n t o s .
e s t e s it io w e b h a s id o d e s a rro lla d o y p ro m o c io n a d o p o r h t t p :/ / w w w . m a rk e t in g e n la w e b . c o m
Au t o r Nuestras zonas
N o m b re :
Jo s é An t o n io Go n zá le z S e co
Em a il:
jo s a n g u a p o @h o t m a il. co m
URL:
h t t p : / / www. jo s a n g u a p o . co m
Vis it a s t o t a le s :
17876
Cu rs o s
1. El le n g u a je d e p ro g ra m a ció n C# ( 1 7 8 7 6 vis it a s )
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n C# Nuestras zonas
Co m e n t a rio s d e lo s u s u a rio s
El e je ce n t ra l d e la o b ra e s e l le n g u a je d e p ro g ra m a ció n C# , d e l q u e n o s ó lo s e d e s crib e s u s in t a xis
s in o q u e t a m b ié n s e in t e n t a e xp lica r cu á le s s o n la s ra zo n e s q u e ju s t ifica n la s d e cis io n e s t o m a d a s e n
s u d is e ñ o y cu á le s s o n lo s e rro re s m á s d ifícile s d e d e t e ct a r q u e p u e d e n p ro d u cirs e a l d e s a rro lla r d e
a p lica cio n e s co n é l.
Pu e d e t a m b ié n e s crib ir s u co m e n t a rio o re g re s a r a d o n d e e s t a b a le ye n d o .
Co m e n t a rio s ( 1 / 3 )
[ S u b ir]
3 6 co m e n t a rio s
« 1 2 3 »
e s t a m u y in t e re s a n t e ( 1 9 / 1 0 / 2 0 0 2 )
Po r jo s e a n t o n io
co m o d e s ca rg o e l cu rs o co m p le t o d e c# , y s i t ie n e s cu rs o d e ja va vis u a l 6 in fo rm a m e , p u e s t e
a g ra d e s co q u e m e co n t e s t e s p u e s e s t o y a p re n d ie n d o p o co a p o co . . . . . Gra cia s
Fe lic it a c io n e s ( 1 6 / 1 0 / 2 0 0 2 )
Po r En riq u e Ló p e z
Mu ch ís im a s g ra cia s
c o m o b a ja r e s t e m a n u a l ( 1 4 / 1 0 / 2 0 0 2 )
Po r fa b ia n ro ja s
m e ju s t a ria t e n e r e s t e cu rs o e n m i p c
t e a g ra d e co s i m e d ice s co m o lo p u e d o h a ce r
¿ Co m o d e s c a rg a rlo ? ( 1 3 / 1 0 / 2 0 0 2 )
Po r Ara ce li
g ra cia s
Ex c e le n t e ( 0 8 / 1 0 / 2 0 0 2 )
Po r PABLO S OUR
Ex c e le n t e ( 0 6 / 1 0 / 2 0 0 2 )
Po r Ca rlo s Me d in a
d e s c a rg a d e e s t e t u t o ria l ( 0 3 / 1 0 / 2 0 0 2 )
Po r m ig u e l p e s ca d o r
d e s c a rg a c o m p le t a d e m a n u a l ( 0 1 / 1 0 / 2 0 0 2 )
Po r Ju lio
S in c o n e x io n a in t e rn e t ( 2 6 / 0 9 / 2 0 0 2 )
Po r Ma rt in ( MAC)
b u e n a s . . . g e n t e p rim e ro e xce le n t e t ra b a jo !!
. . . u n a fo rm a q u e p u e d e u s a r p a ra q u e la p u e d a n ve r s in e s t a r co n e ct a d o a in t e n e t e s a g re g a r a
fa vo rit o s . la d ire ccio n ; h t t p : / / www. p ro g ra m a cio n . co m / t u t o ria l. cs h a rp . h t m l, ch e q u e a r la o p cio n
d is p o n ib le s in co n e xio n , p re s io n a r e l b o t o n d e p e rs o n la iza r, y s e le ccio n a r d e ca rg a r u n n ive l d e
vin cu lo s . t o d o e s t o e s t a n co n e ct a d o a in t e rn e t . . , d e co n e ct a rs e y a cce s a r la in fo e n t ra n d o p o r s u
lin k d e fa vo rit o s . . s a lu d o s . . .
Ge n ia l ( 2 4 / 0 9 / 2 0 0 2 )
Po r Bo rja
o b t e n e r t u t o ria l ( 2 3 / 0 9 / 2 0 0 2 )
Po r vict o r
c o m o lo o b t e n g o ( 2 3 / 0 9 / 2 0 0 2 )
Po r Erick
In fo rm a rm e co m o lo p u e d o o b t e n e r
UN A D E ROMAN OS ( 2 3 / 0 9 / 2 0 0 2 )
Po r e le n a n it o d e l b o s q u e
Ho la m e g u s t a ria s a b e r s i c3 e s u n a co p ia b a ra t a d e ja va , p o rq u e e l g u iile rm o p u e rt a s d e s d e q u e
p e rd io e l ju icio co n ja va n o s a b e lo q u e h a ce r, S ERÁ IGUAL DE FULL QUE S U VIS UAL BAS IC?
DARA PANTALLAZOS POR TODOS LOS LADOS ? AHORA QUE PROBLEMA S IMILA AL DE LAS DLL
APARECRÁ? . . . TODO ES TO LO VEREMOS EN LOS PROXIMOS CAPITULOS DE MOCOS OFT. . .
Bie n h e c h o ! ( 2 0 / 0 9 / 2 0 0 2 )
Po r Lu is
Exce le n t e t ra b a jo , p e ro a h o ra lo m á s im p o rt a n t e : có m o p u e d o o b t e n e rlo ?
Ma n u a l d e C# ( 1 9 / 0 9 / 2 0 0 2 )
Po r Ra m s e s
Gra cia s
Bu e n Tra b a jo
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
No m b re :
Tít u lo d e l co m e n t a rio :
Te xt o d e l co m e n t a rio :
Enviar
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n C# Nuestras zonas
Co m e n t a rio s d e lo s u s u a rio s
Pu e d e t a m b ié n e s crib ir s u co m e n t a rio o re g re s a r a d o n d e e s t a b a le ye n d o .
Co m e n t a rio s ( 1 / 3 )
[ S u b ir]
3 6 co m e n t a rio s
« 1 2 3 »
¡Co m o o b t e n e r e l t u t o ria l! ( 1 4 / 0 9 / 2 0 0 2 )
Po r Xa vie r Ort e g a
Me g u s t a rìa s a b e r co m o p u e d o b a ja rm e e l t u t o ria l ya q u e e s t à m u y in t e re s a n t e p e ro m u ch a s
ve ce s n o t e n g o la o p o rt u n id a d d e u t iliza r e l In t e rn e t .
Ma n u a l m u y in t e re s a n t e ( 1 1 / 0 9 / 2 0 0 2 )
Po r FREDY ALCOCER S ANCHEZ
Co m o ? ? ? ( 1 0 / 0 9 / 2 0 0 2 )
Po r Me Me
La ve rd a d e s q u e m e g u s t a m u ch o lo q u e e s p ro g ra m a r e n C, ya q u e a lo q u e h e o id o e s m u y
b u e n o , p e ro m i p re g u n t a e s , co m o s e lla m a e l s o ft wa re p a ra p ro g ra m a r e n C? o s i e xis t e n va rio s
cu a l e s e l m e jo r. . .
Gra cia s !!
n e c e s it o a y u d a ( 1 0 / 0 9 / 2 0 0 2 )
Po r d e n ice
HOLA QUE TAL ES PERO PUEDAN AYUDARME RES ULTA QUE NECES ITO S ABER LOS S IGNIFICADOS
DE DIAGRAMAS LINEALES S US TIPOS DE OPERADORES OPERADOS RES ARITMETICOS
OPERADORES RELACIONAL4 ES LOGICOS CONS PETOS EXPRES IONES CONTADORES
ACUMULADORES S U DEFINICIONE Y CLAS IFICACIO DE DIAGRAMAS S IMBOLOGIA ES TRUCTURA
DE CONTROL S ECUENCIALES S ELECTIVOS IFIFELS E ES TRUCTURAS REPETITIVAS EXPRES ION
FOR WHILE DO WHILE ELABORACION DE DIAGRAMAS . S EUDO CODIGO PRUEBAS DE
ES CRITORIO DIS S EÑO MOLECULAR S US FUNCIONES S IN PARAMETROS CON PARAMETROS .
S I NO ES POS IBLE ENVIAR LA INFORMACION ME PODRIAN DAR UNA PAGINA DE DONDE
BAJARLA
ES PERO NO S EA MUCHA MOLES TIA LES AGRADEZCO
GRACIAS
Qu e N o t a ! ( 1 0 / 0 9 / 2 0 0 2 )
Po r jp cc
Exce le n t e e l m a n u a l. . .
g ra cia s p o r e s e a p o rt e !
S im p le m e n t e m a g n ífic o ( s / t ) ( 1 0 / 0 9 / 2 0 0 2 )
Po r Ju a n
Lib ro e n . d o c ( 1 0 / 0 9 / 2 0 0 2 )
Po r Jo s é An t o n io Go n zá le z S e co
Ho la a m ig o s ,
An t e t o d o a g ra d e ce r lo s co m e n t a rio s fa vo ra b le s s o b re m i o b ra q u e h e le id o . De s p u é s , d e ciro s q u e
lo q u e cie rt o co rre o d e p o r a q u í p e d ía s o b re p a s a r e l lib ro a . d o c n o e s n e ce s a rio . En m i p á g in a
we b www. jo s a n g u a p o . co m lo p o d re is e n co n t ra r t a n t o e n . d o c co m o . p d f
S a lu d o s
Jo s é An t o n io .
P a ra n o ia ( 1 0 / 0 9 / 2 0 0 2 )
Po r p a u g a s
La ve rd a d e s q u e t o d o e s t o m e h a ce s o s p e ch a r ¿ p a ra q u e e je cu t a r u n p ro g ra m a r re m o t a m e n t e ?
e s u n in t e n t o p a ra q u e lo s d a t o s e s t e n co n t ro la d o s p o r m icro s o ft , cre o q u e e s t o fra ca s a ra .
q u ie n s e rá e l p rim e ro ( 0 9 / 0 9 / 2 0 0 2 )
Po r Fe n t in a k
a ve r q u ié n e s e l p rim e ro q u e lo p a s a a u n . d o c y lo s co m p a rt e co n lo s
d e m á s . . . fe n t in a k@h o t m a il. co m
MUY BUEN O ( 0 9 / 0 9 / 2 0 0 2 )
Po r Es t e b a n Ma rín Ce rva n t e s
. N ET w a ! ( 0 9 / 0 9 / 2 0 0 2 )
Po r Ro b e rt o Ro d rig u e z G.
Ro b e rt o Ch i : D
Mu y b u e n o ( 0 9 / 0 9 / 2 0 0 2 )
Po r cifra
Es m u y b u e n o , e xt e n s o , fa cil d e m a n e ja r y m u y b ie n e s t ru ct u ra d o
D io s t e d è m à s ( 0 7 / 0 9 / 2 0 0 2 )
Po r A. C. Co lo m b ia
S im p le m e n t e g e n ia l, p o r s e r u n o d e lo s p rim e ro s m a n u a le s y p o r e s t a r t a n b ie n e s t ru ct u ra d o y
e xp lica d o . Gra cia s
En e l a p a rt a d o d o wn lo a d s d e m i p á g in a :
h t t p : / / u s u a rio s . t rip o d . e s / CS h a rp / in d e x. h t m
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n C# Nuestras zonas
Co m e n t a rio s d e lo s u s u a rio s
El e je ce n t ra l d e la o b ra e s e l le n g u a je d e p ro g ra m a ció n C# , d e l q u e n o s ó lo s e d e s crib e s u s in t a xis
s in o q u e t a m b ié n s e in t e n t a e xp lica r cu á le s s o n la s ra zo n e s q u e ju s t ifica n la s d e cis io n e s t o m a d a s e n
s u d is e ñ o y cu á le s s o n lo s e rro re s m á s d ifícile s d e d e t e ct a r q u e p u e d e n p ro d u cirs e a l d e s a rro lla r d e
a p lica cio n e s co n é l.
Pu e d e t a m b ié n e s crib ir s u co m e n t a rio o re g re s a r a d o n d e e s t a b a le ye n d o .
Co m e n t a rio s ( 1 / 3 )
[ S u b ir]
3 6 co m e n t a rio s
« 1 2 3 »
GRACI AS Jo s é An t o n io Go n z á le z S e c o ( 0 3 / 0 9 / 2 0 0 2 )
Po r BENIGNO
Es t a m u y b ie n e s t ru ct u ra d o e n ca d a t e m a t e a g ra d e zco q u e p o n g a s a n u e s t ro a lca n ce e s t e
t u t o ria l n o e n t ie n d o a la g e n t e q u e s e q u e ja d e q u e h a b e r s i lo t ie n e n e n t a l o cu a l fo rm a t o
e n cim a q u e le s p o n e n e n la p a lm a d e la m a n o u n t ra b a jo b u e n o e n cim a s e q u e ja n , p o r o t ro la d o
e s t o y m ira n d o p o r t ra b a jo s e n VB. NET p a re ce q u e lo t ie n e n d e ja d it o m e e xt ra ñ a p u e s ya e s d e
o b je t o s ve rd a d e ra m e n t e . Te rm in o d a n d o d e n u e vo m i g ra t it u d a l a u t o r y a l q u e lo a lo ja cla ro !.
Es t e t u t o ria l e s . . . ( 3 0 / 0 8 / 2 0 0 2 )
Po r Ma n u
S e n cilla m e n t e fa b u lo s o . Mu y b ie n , y g ra cia s a l a u t o r.
e x c e le n t e m a n u a l ( 2 8 / 0 8 / 2 0 0 2 )
Po r Fe rn e y
Fe lic it a c io n e s ( 2 3 / 0 8 / 2 0 0 2 )
Po r AC
MAN UAL ( 2 1 / 0 8 / 2 0 0 2 )
Po r s a n ch e z
Do n d e p u e d o d e s ca rg a r e l m a n u a l.
Mu y b u e n o , a ú n q u e . . . . ( 1 9 / 0 8 / 2 0 0 2 )
Po r Ma rc
El t u t o ria l e s m u y b u e n o , p e ro p o co d in á m ico y có m o d o .
Ob t e n e r la co p ia e n Wo rd o PDF e im p rim irlo e s a lg o m e jo r.
Aú n a s í fe licit o a l a u t o r.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Pu n t u a ció n :
Elija una
Puntuar
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Re c o m e n d a r a u n a m ig o Nuestras zonas
El le n g u a je d e p ro g ra m a ció n C#
Tu No m b re : ( Ob lig a t o rio )
Co m e n t a rio :
Enviar
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
Es t a d ís t ic a s Nuestras zonas
Cu rs o :
El le n g u a je d e
p ro g ra m a ció n C#
Vis it a s t o t a le s :
17876
Vis it a s d e s g lo s a d a s p o r m e s e s ( d e s d e Ju lio d e 2 0 0 2 )
1. Oct u b re d e 2 0 0 2 : 3 6 9 8 vis it a s
2. S e p t ie m b re d e 2 0 0 2 : 1 1 8 7 9 vis it a s
3. Ag o s t o d e 2 0 0 2 : 1 0 4 0 9 vis it a s
4. Ju lio d e 2 0 0 2 : 1 7 8 3 vis it a s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● In t ro d u cció n a la o b ra
❍ Re q u is it o s p re vio s re co m e n d a d o s
❍ Es t ru ct u ra d e la o b ra
❍ Co n ve n io s d e n o t a ció n
I n t ro d u c c ió n a la o b ra
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
Re q u is it o s p re v io s re c o m e n d a d o s
S in e m b a rg o , e s t o s n o s o n re q u is it o s fu n d a m e n t a le s p a ra e n t e n d e rla ya q u e ca d a ve z q u e e n e lla s e
in t ro d u ce a lg ú n e le m e n t o d e l le n g u a je s e d e fin e n y e xp lica n lo s co n ce p t o s b á s ico s q u e p e rm it e n
e n t e n d e rlo . Aú n a s í, s ig u e s ie n d o re co m e n d a b le d is p o n e r d e lo s re q u is it o s a n t e s m e n cio n a d o s p a ra
p o d e r m o ve rs e co n m a yo r s o lt u ra p o r e l lib ro y a p ro ve ch a rlo a l m á xim o .
Es t ru c t u ra d e la o b ra
Bá s ica m e n t e e l e je ce n t ra l d e la o b ra e s e l le n g u a je d e p ro g ra m a ció n C# , d e l q u e n o s ó lo s e
d e s crib e s u s in t a xis s in o q u e t a m b ié n s e in t e n t a e xp lica r cu á le s s o n la s ra zo n e s q u e ju s t ifica n la s
d e cis io n e s t o m a d a s e n s u d is e ñ o y cu á le s s o n lo s e rro re s m á s d ifícile s d e d e t e ct a r q u e p u e d e n
p ro d u cirs e a l d e s a rro lla r d e a p lica cio n e s co n é l. S in e m b a rg o , lo s 2 0 t e m a s u t iliza d o s p a ra e llo
p u e d e n d e s co m p o n e rs e e n t re s g ra n d e s b lo q u e s :
● Blo q u e 2 : D e s c rip c ió n d e l le n g u a je : Es t e b lo q u e co n s t it u ye e l g ru e s o d e la o b ra
y e s t á fo rm a d o p o r lo s t e m a s co m p re n d id o s e n t re e l 3 y e l 1 9 . En e llo s s e
d e s crib e n p o rm e n o riza d a m e n t e lo s a s p e ct o s d e l le n g u a je m o s t ra n d o e je m p lo s d e
s u u s o , e xp lica n d o s u p o rq u é y a vis a n d o d e cu á le s s o n lo s p ro b le m a s m á s d ifícile s
d e d e t e ct a r q u e p u e d e n s u rg ir a l u t iliza rlo s y có m o e vit a rlo s .
Co n v e n io s d e n o t a c ió n
class HolaMundo
{
static void Main()
{
System.Console.WriteLine("¡Hola Mundo!");
}
}
Es t a m is m a fu e n t e e s la q u e s e u s a rá d e s d e la s e xp lica cio n e s ca d a ve z q u e s e h a g a
re fe re n cia a a lg ú n e le m e n t o d e l có d ig o fu e n t e . S i a d e m á s d ich o e le m e n t o e s u n a p a la b ra
re s e rva d a d e l le n g u a je o vie n e p re d e fin id o e n la lib re ría d e . NET, s u n o m b re s e e s crib irá e n
n e g rit a p a ra a s í re s a lt a r e l ca rá ct e r e s p e cia l d e l m is m o
csc HolaMundo.cs
class <nombreClase>
{
<miembros>
}
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
Te m a 1 : I n t ro d u c c ió n a Mic ro s o ft . N ET
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
Mic ro s o ft . N ET
Co m m o n La n g u a g e Ru n t im e ( CLR)
● Mo d e lo d e p ro g ra m a c ió n c o n s is t e n t e : A t o d o s lo s s e rvicio s y fa cilid a d e s
o fre cid o s p o r e l CLR s e a cce d e d e la m is m a fo rm a : a t ra vé s d e u n m o d e lo d e
p ro g ra m a ció n o rie n t a d o a o b je t o s . Es t o e s u n a d ife re n cia im p o rt a n t e re s p e ct o a l
m o d o d e a cce s o a lo s s e rvicio s o fre cid o s p o r lo s a lg u n o s s is t e m a s o p e ra t ivo s
a ct u a le s ( p o r e je m p lo , lo s d e la fa m ilia Win d o ws ) , e n lo s q u e a a lg u n o s s e rvicio s s e
le s a cce d e a t ra vé s d e lla m a d a s a fu n cio n e s g lo b a le s d e fin id a s e n DLLs y a o t ro s a
t ra vé s d e o b je t o s ( o b je t o s COM e n e l ca s o d e la fa m ilia Win d o ws )
● Mo d e lo d e p ro g ra m a c ió n s e n c illo : Co n e l CLR d e s a p a re ce n m u ch o s e le m e n t o s
co m p le jo s in clu id o s e n lo s s is t e m a s o p e ra t ivo s a ct u a le s ( re g is t ro d e Win d o ws ,
GUIDs , HRES ULTS , IUn kn o wn , e t c. ) El CLR n o e s q u e a b s t ra ig a a l p ro g ra m a d o r d e
e s t o s co n ce p t o s , s in o q u e s o n co n ce p t o s q u e n o e xis t e n e n la p la t a fo rm a . NET
o p e ra t ivo s .
● I n t e g ra c ió n d e le n g u a je s : De s d e cu a lq u ie r le n g u a je p a ra e l q u e e xis t a u n
co m p ila d o r q u e g e n e re có d ig o p a ra la p la t a fo rm a . NET e s p o s ib le u t iliza r có d ig o
g e n e ra d o p a ra la m is m a u s a n d o cu a lq u ie r o t ro le n g u a je t a l y co m o s i d e có d ig o
e s crit o u s a n d o e l p rim e ro s e t ra t a s e . Micro s o ft h a d e s a rro lla d o u n co m p ila d o r d e
C# q u e g e n e ra có d ig o d e e s t e t ip o , a s í co m o ve rs io n e s d e s u s co m p ila d o re s d e
Vis u a l Ba s ic ( Vis u a l Ba s ic. NET) y C+ + ( C+ + co n e xt e n s io n e s g e s t io n a d a s ) q u e
t a m b ié n lo g e n e ra n y u n a ve rs ió n d e l in t é rp re t e d e JS crip t ( JS crip t . NET) q u e p u e d e
in t e rp re t a rlo . La in t e g ra ció n d e le n g u a je s e s t a q u e e s p o s ib le e s crib ir u n a cla s e e n
C# q u e h e re d e d e o t ra e s crit a e n Vis u a l Ba s ic. NET q u e , a s u ve z, h e re d e d e o t ra
e s crit a e n C+ + co n e xt e n s io n e s g e s t io n a d a s .
● I n t e ro p e ra b ilid a d c o n c ó d ig o a n t ig u o : El CLR in co rp o ra lo s m e ca n is m o s
n e ce s a rio s p a ra p o d e r a cce d e r d e s d e có d ig o e s crit o p a ra la p la t a fo rm a . NET a
có d ig o e s crit o p re via m e n t e a la a p a rició n d e la m is m a y, p o r t a n t o , n o p re p a ra d o
p a ra s e r e je cu t a n d o d e n t ro d e e lla . Es t o s m e ca n is m o s p e rm it e n t a n t o e l a cce s o a
o b je t o s COM co m o e l a cce s o a fu n cio n e s s u e lt a s d e DLLs p re e xis t e n t e s ( co m o la
API Win 3 2 )
Mic ro s o ft I n t e rm e d ia t e La n g u a g e ( MS I L)
To d o s lo s co m p ila d o re s q u e g e n e ra n có d ig o p a ra la p la t a fo rm a . NET n o g e n e ra n có d ig o m á q u in a
p a ra CPUs x8 6 n i p a ra n in g ú n o t ro t ip o d e CPU co n cre t a , s in o q u e g e n e ra n có d ig o e s crit o e n e l
le n g u a je in t e rm e d io co n o cid o co m o Micro s o ft In t e rm e d ia t e Le n g u a g e ( MS IL) El CLR d a a la s
a p lica cio n e s la s s e n s a ció n d e q u e s e e s t á n e je cu t a n d o s o b re u n a m á q u in a virt u a l, y p re cis a m e n t e
MS IL e s e l có d ig o m á q u in a d e e s a m á q u in a virt u a l. Es d e cir, MS IL e s e l ú n ico có d ig o q u e e s ca p a z
d e in t e rp re t a r e l CLR, y p o r t a n t o cu a n d o s e d ice q u e u n co m p ila d o r g e n e ra có d ig o p a ra la
p la t a fo rm a . NET lo q u e s e e s t á d icie n d o e s q u e g e n e ra MS IL.
● jit t e r n o rm a l: Es e l q u e s e s u e le u s a r p o r d e fe ct o , y s ó lo co m p ila e l có d ig o MS IL a
có d ig o n a t ivo a m e d id a q u e va s ie n d o n e ce s a rio , p u e s a s í s e a h o rra t ie m p o y
m e m o ria a l e vit a rs e t e n e r q u e co m p ila r in n e ce s a ria m e n t e có d ig o q u e n u n ca s e
e je cu t e . Pa ra co n s e g u ir e s t o , e l ca rg a d o r d e cla s e s d e l CLR s u s t it u ye in icia lm e n t e
la s lla m a d a s a m é t o d o s d e la s n u e va s cla s e s q u e va ya ca rg a n d o p o r lla m a d a s a
fu n cio n e s a u xilia re s ( s t u b s ) q u e s e e n ca rg u e n d e co m p ila r e l ve rd a d e ro có d ig o d e l
m é t o d o . Un a ve z co m p ila d o , la lla m a d a a l s t u b e s s u s t it u id a p o r u n a lla m a d a
d ire ct a a l có d ig o ya co m p ila d o , co n lo q u e p o s t e rio re s lla m a d a s a l m is m o n o
n e ce s it a rá n co m p ila ció n .
Me t a d a t o s
En la p la t a fo rm a . NET s e d is t in g u e n d o s t ip o s d e m ó d u lo s d e có d ig o co m p ila d o : e je c u t a b le s
( e xt e n s ió n . e x e ) y lib re ría s d e e n la c e d in á m ic o ( e xt e n s ió n . d ll g e n e ra lm e n t e ) Am b o s s o n
fich e ro s q u e co n t ie n e n d e fin icio n e s d e t ip o s d e d a t o s , y la d ife re n cia e n t re e llo s e s q u e s ó lo lo s
p rim e ro s d is p o n e n d e u n m é t o d o e s p e cia l q u e s irve d e p u n t o d e e n t ra d a a p a rt ir d e l q u e e s p o s ib le
e je cu t a r e l có d ig o q u e co n t ie n e n h a cie n d o u n a lla m a d a d e s d e la lín e a d e co m a n d o s d e l s is t e m a
o p e ra t ivo . A a m b o s t ip o s d e m ó d u lo s s e le s s u e le lla m a r e je c u t a b le s p o rt a b le s ( PE) , ya q u e s u
có d ig o p u e d e e je cu t a rs e e n cu a lq u ie ra d e lo s d ife re n t e s s is t e m a s o p e ra t ivo s d e la fa m ilia Win d o ws
p a ra lo s q u e e xis t e a lg u n a ve rs ió n d e l CLR.
El co n t e n id o d e u n m ó d u lo n o s ó lo MS IL, s in o q u e t a m b ié n co n s t a d e o t ra s d o s á re a s m u y
im p o rt a n t e s : la ca b e ce ra d e CLR y lo s m e t a d a t o s :
Lo s m e t a d a t o s s o n u n co n ju n t o d e d a t o s o rg a n iza d o s e n fo rm a d e t a b la s q u e a lm a ce n a n
in fo rm a ció n s o b re lo s t ip o s d e fin id o s e n e l m ó d u lo , lo s m ie m b ro s d e é s t o s y s o b re cu á le s s o n lo s
t ip o s e xt e rn o s a l m ó d u lo a lo s q u e s e le s re fe re n cia e n e l m ó d u lo . Lo s m e t a d a t o s d e ca d a m o d u lo
lo s g e n e ra a u t o m á t ica m e n t e e l co m p ila d o r a l cre a rlo , y e n t re s u s t a b la s s e in clu ye n :
Ta b la D e s c rip c ió n
De fin e la s ca ra ct e rís t ica s d e l m ó d u lo . Co n s t a d e u n ú n ico e le m e n t o q u e a lm a ce n a u n
id e n t ifica d o r d e ve rs ió n d e m ó d u lo ( GUID cre a d o p o r e l co m p ila d o r) y e l n o m b re d e
Mo d u le De f
fich e ro q u e s e d io a l m ó d u lo a l co m p ila rlo ( a s í e s t e n o m b re s ie m p re e s t a rá
d is p o n ib le , a u n q u e s e re n o m b re e l fich e ro )
De fin e la s ca ra ct e rís t ica s d e lo s t ip o s d e fin id o s e n e l m ó d u lo . De ca d a t ip o s e
Typ e De f a lm a ce n a s u n o m b re , s u t ip o p a d re , s u s m o d ifica d o re s d e a cce s o y re fe re n cia s a lo s
e le m e n t o s d e la s t a b la s d e m ie m b ro s co rre s p o n d ie n t e s a s u s m ie m b ro s .
De fin e la s ca ra ct e rís t ica s d e lo s m é t o d o s d e fin id o s e n e l m ó d u lo . De ca d a m é t o d o s e
g u a rd a s u n o m b re , s ig n a t u ra ( p o r ca d a p a rá m e t ro s e in clu ye u n a re fe re n cia a l
Me t h o d De f
e le m e n t o a p ro p ia d o e n la t a b la Pa ra m De f) , m o d ifica d o re s y p o s ició n d e l m ó d u lo
d o n d e co m ie n za e l có d ig o MS IL d e s u cu e rp o .
Ta b la 1 : Prin cip a le s t a b la s d e m e t a d a t o s
En s a m b la d o s
To d o e n s a m b la d o co n t ie n e u n m a n ifie s t o , q u e s o n m e t a d a t o s co n in fo rm a ció n s o b re la s
ca ra ct e rís t ica s d e l e n s a m b la d o . Es t e m a n ifie s t o p u e d e a lm a ce n a rs e cu a lq u ie ra d e lo s m ó d u lo s q u e
fo rm e n e l e n s a m b la d o o e n u n o e s p e cífica m e n t e cre a d o p a ra e llo , ca s o é s t e ú lt im o n e ce s a rio
cu a n d o e s u n e n s a m b la d o s a t é lit e ( s ó lo co n t ie n e re cu rs o s )
Ta b la D e s c rip c ió n
De fin e la s ca ra ct e rís t ica s d e l e n s a m b la d o . Co n s t a d e u n ú n ico e le m e n t o
q u e a lm a ce n a e l n o m b re d e l e n s a m b la d o s in e xt e n s ió n , ve rs ió n , id io m a ,
As s e m b lyDe f
cla ve p ú b lica y t ip o d e a lg o rit m o d e d is p e rs ió n u s a d o p a ra h a lla r lo s
va lo re s d e d is p e rs ió n d e la t a b la File De f.
De fin e cu á le s s o n lo s a rch ivo s q u e fo rm a n e l e n s a m b la d o . De ca d a u n o s e
d a s u n o m b re y va lo r d e d is p e rs ió n . Nó t e s e q u e s ó lo e l m ó d u lo q u e
co n t ie n e e l m a n ifie s t o s a b rá q u é fich e ro s q u e fo rm a n e l e n s a m b la d o , p e ro
File De f
e l re s t o d e fich e ro s d e l m is m o n o s a b rá n s i p e rt e n e ce n o n o a u n
e n s a m b la d o ( n o co n t ie n e n m e t a d a t o s q u e le s in d iq u e s i p e rt e n e ce n a u n
e n s a m b la d o )
De fin e la s ca ra ct e rís t ica s d e lo s re cu rs o s in clu id o s e n e l m ó d u lo . De ca d a
u n o s e in d ica s u n o m b re y m o d ifica d o re s d e a cce s o . S i e s u n re cu rs o
Ma n ife s t Re s o u rce De f in cru s t a d o s e in d ica d ó n d e e m p ie za d e n t ro d e l PE q u e lo co n t ie n e , y s i e s
u n fich e ro in d e p e n d ie n t e s e in d ica cu á l e s e l e le m e n t o d e la t a b la File De f
co rre s p o n d ie n t e a d ich o fich e ro .
In d ica cu á le s s o n lo s t ip o s d e fin id o s e n e l e n s a m b la d o y a cce s ib le s d e s d e
fu e ra d e l m is m o . Pa ra a h o rra r e s p a cio s ó lo re co g e n lo s q u e n o p e rt e n e zca n
a l m ó d u lo d o n d e s e in clu ye e l m a n ifie s t o , y d e ca d a u n o s e in d ica s u
Exp o rt e d Typ e s De f
n o m b re , la p o s ició n e n la t a b la File De f d e l fich e ro d o n d e s e h a
im p le m e n t a d o y la p o s ició n e n la t a b la Typ e De f co rre s p o n d ie n t e a s u
d e fin ició n .
In d ica e n q u é p ro ce s a d o re s s e p u e d e e je cu t a r e l e n s a m b la d o , lo q u e
p u e d e s e r ú t il s a b e rlo s i e l e n s a m b la d o co n t ie n e m ó d u lo s co n có d ig o n a t ivo
( p o d ría h a ce rs e u s a n d o C+ + co n e xt e n s io n e s g e s t io n a d a s ) S u e le e s t a r
va cía , lo q u e in d ica q u e s e p u e d e e je cu t a r e n cu a lq u ie r p ro ce s a d o r; p e ro s i
As s e m b lyPro cce s o rDe f
e s t u vie s e lle n a , ca d a e le m e n t o in d ica ría u n t ip o d e p ro ce s a d o r a d m it id o
s e g ú n e l fo rm a t o d e id e n t ifica d o re s d e p ro ce s a d o r d e l fich e ro Win NT. h
in clu id o co n Vis u a l S t u d io . NET ( p o r e je m p lo , 5 8 6 = Pe n t iu m , 2 2 0 0 =
Arq u it e ct u ra IA6 4 , e t c. )
In d ica b a jo q u é s is t e m a s o p e ra t ivo s s e p u e d e e je cu t a r e l e n s a m b la d o , lo
q u e p u e d e s e r ú t il s i co n t ie n e m ó d u lo s co n t ip o s o m é t o d o s d is p o n ib le s
s ó lo e n cie rt o s s is t e m a s . S u e le e s t a r va cía , lo q u e in d ica q u e s e p u e d e
e je cu t a r e n cu a lq u ie r p ro ce s a d o r; p e ro s i e s t u vie s e lle n a , in d ica ría e l
As s e m b lyOS De f
id e n t ifica d o r d e ca d a u n o d e lo s s is t e m a s a d m it id o s s ig u ie n d o e l fo rm a t o
d e l Win NT. h d e Vis u a l S t u d io . NET ( p o r e je m p lo , 0 = fa m ilia Win d o ws 9 X, 1
= fa m ilia Win d o ws NT, e t c. ) y e l n ú m e ro d e la ve rs ió n d e l m is m o a p a rt ir
d e la q u e s e a d m it e .
Pa ra a s e g u ra r q u e n o s e h a ya a lt e ra d o la in fo rm a ció n d e n in g ú n e n s a m b la d o s e u s a e l crip t o s is t e m a
d e cla ve p ú b lica RS A. Lo q u e s e h a ce e s ca lcu la r e l có d ig o d e d is p e rs ió n S HA- 1 d e l m ó d u lo q u e
co n t e n g a e l m a n ifie s t o e in clu ir t a n t o e s t e va lo r cifra d o co n RS A ( firm a d ig it a l) co m o la cla ve
p ú b lica n e ce s a ria p a ra d e s cifra rlo e n a lg ú n lu g a r d e l m ó d u lo q u e s e in d ica rá e n la ca b e ce ra d e CLR.
Ca d a ve z q u e s e va ya a ca rg a r e n m e m o ria e l e n s a m b la d o s e ca lcu la rá s u va lo r d e d is p e rs ió n d e
n u e vo y s e co m p ro b a rá q u e e s ig u a l a l re s u lt a d o d e d e s cifra r e l o rig in a l u s a n d o s u cla ve p ú b lica . S i
n o fu e s e a s í s e d e t e ct a ría q u e s e h a a d u lt e ra d o s u co n t e n id o .
Pa ra a s e g u ra r t a m b ié n q u e lo s co n t e n id o s d e l re s t o d e fich e ro s q u e fo rm e n u n e n s a m b la d o n o
h a ya n s id o a lt e ra d o s lo q u e s e h a ce e s ca lcu la r e l có d ig o d e d is p e rs ió n d e é s t o s a n t e s d e cifra r e l
Da d o q u e la s cla ve s p ú b lica s s o n va lo re s q u e o cu p a n m u ch o s b yt e s ( 2 0 4 8 b it s ) , lo q u e s e h a ce p a ra
e vit a r q u e lo s m e t a d a t o s s e a n e xce s iva m e n t e g ra n d e s e s n o in clu ir e n la s re fe re n cia s a
e n s a m b la d o s e xt e rn o s d e la t a b la As s e m b lyRe f la s cla ve s p ú b lica s d e d ich o s e n s a m b la d o s , s in o s ó lo
lo s 6 4 ú lt im o s b it s re s u lt a n t e s d e a p lica r u n a lg o rit m o d e d is p e rs ió n a d ich a s cla ve s . A e s t e va lo r
re co rt a d o s e le lla m a m a rc a d e c la v e p ú b lic a .
Ha y d o s t ip o s d e e n s a m b la d o s : e n s a m b la d o s p riv a d o s y e n s a m b la d o s c o m p a rt id o s . Lo s
p riva d o s s e a lm a ce n a n e n e l m is m o d ire ct o rio q u e la a p lica ció n q u e lo s u s a y s ó lo p u e d e u s a rlo s
é s t a , m ie n t ra s q u e lo s co m p a rt id o s s e a lm a ce n a n e n u n c a c h é d e e n s a m b la d o g lo b a l ( GAC) y
p u e d e n u s a rlo s cu a lq u ie ra q u e h a ya s id o co m p ila d a re fe re n ciá n d o lo s .
Ta m b ié n p a ra e vit a r p ro b le m a s , e n e l GAC s e p u e d e n m a n t e n e r m ú lt ip le s ve rs io n e s d e u n m is m o
e n s a m b la d o . As í, s i u n a a p lica ció n fu e co m p ila d a u s a n d o u n a cie rt a ve rs ió n d e u n d e t e rm in a d o
e n s a m b la d o co m p a rt id o , cu a n d o s e e je cu t e s ó lo p o d rá h a ce r u s o d e e s a ve rs ió n d e l e n s a m b la d o y
n o d e a lg u n a o t ra m á s m o d e rn a q u e s e h u b ie s e in s t a la d o e n e l GAC. De e s t a fo rm a s e s o lu cio n a e l
p ro b le m a d e l in fie rn o d e la s D LL co m e n t a d o a l p rin cip io d e l t e m a .
La Lib re ría d e Cla s e Ba s e ( BCL) e s u n a lib re ría in clu id a e n e l . NET Fra m e w o rk fo rm a d a p o r cie n t o s
d e t ip o s d e d a t o s q u e p e rm it e n a cce d e r a lo s s e rvicio s o fre cid o s p o r e l CLR y a la s fu n cio n a lid a d e s
m á s fre cu e n t e m e n t e u s a d a s a la h o ra d e e s crib ir p ro g ra m a s . Ad e m á s , a p a rt ir d e e s t a s cla s e s
p re fa b rica d a s e l p ro g ra m a d o r p u e d e cre a r n u e va s cla s e s q u e m e d ia n t e h e re n cia e xt ie n d a n s u
fu n cio n a lid a d y s e in t e g re n a la p e rfe cció n co n e l re s t o d e cla s e s d e la BCL. Po r e je m p lo ,
im p le m e n t a n d o cie rt o s in t e rfa ce s p o d e m o s cre a r n u e vo s t ip o s d e co le ccio n e s q u e s e rá n t ra t a d a s
e xa ct a m e n t e ig u a l q u e cu a lq u ie ra d e la s co le ccio n e s in clu id a s e n la BCL.
Es p a c io d e n o m b re s Ut ilid a d d e lo s t ip o s d e d a t o s q u e c o n t ie n e
Tip o s m u y fre cu e n t e m e n t e u s a d o s , co m o lo s lo s t ip o s b á s ico s ,
S ys t e m t a b la s , e xce p cio n e s , fe ch a s , n ú m e ro s a le a t o rio s , re co le ct o r d e
b a s u ra , e n t ra d a / s a lid a e n co n s o la , e t c.
Co le ccio n e s d e d a t o s d e u s o co m ú n co m o p ila s , co la s , lis t a s ,
S ys t e m . Co lle ct io n s
d iccio n a rio s , e t c.
Ma n ip u la ció n d e b a s e s d e d a t o s . Fo rm a n la d e n o m in a d a a rq u it e ct u ra
S ys t e m . Da t a
AD O. N ET.
S ys t e m . IO Ma n ip u la ció n d e fich e ro s y o t ro s flu jo s d e d a t o s .
S ys t e m . Ne t Re a liza ció n d e co m u n ica cio n e s e n re d .
S ys t e m . Re fle ct io n Acce s o a lo s m e t a d a t o s q u e a co m p a ñ a n a lo s m ó d u lo s d e có d ig o .
S ys t e m . Ru n t im e . Re m o t in g Acce s o a o b je t o s re m o t o s .
S ys t e m . S e cu rit y Acce s o a la p o lít ica d e s e g u rid a d e n q u e s e b a s a e l CLR.
S ys t e m . Th re a d in g Ma n ip u la ció n d e h ilo s .
Cre a ció n d e in t e rfa ce s d e u s u a rio b a s a d a s e n ve n t a n a s p a ra
S ys t e m . We b . UI. We b Co n t ro ls
a p lica cio n e s We b .
Cre a ció n d e in t e rfa ce s d e u s u a rio b a s a d a s e n ve n t a n a s p a ra
S ys t e m . Win fo rm s
a p lica cio n e s e s t á n d a r.
S ys t e m . XML Acce s o a d a t o s e n fo rm a t o XML.
Ta b la 3 : Es p a cio s d e n o m b re s d e la BCL m á s u s a d o s
Co m m o n Ty p e S y s t e m ( CTS )
El Co m m o n Ty p e S y s t e m ( CTS ) o S is t e m a d e Tip o Co m ú n e s e l co n ju n t o d e re g la s q u e h a n d e
s e g u ir la s d e fin icio n e s d e t ip o s d e d a t o s p a ra q u e e l CLR la s a ce p t e . Es d e cir, a u n q u e ca d a le n g u a je
g e s t io n a d o d is p o n g a d e s u s p ro p ia s in t a xis p a ra d e fin ir t ip o s d e d a t o s , e n e l MS IL re s u lt a n t e d e la
co m p ila ció n d e s u s có d ig o s fu e n t e s e h a d e cu m p lir la s re g la s d e l CTS . Alg u n o s e je m p lo s d e e s t a s
re g la s s o n :
● Ca d a t ip o d e d a t o p u e d e co n s t a r d e ce ro o m á s m ie m b ro s . Ca d a u n o d e e s t o s
m ie m b ro s p u e d e s e r u n ca m p o , u n m é t o d o u n a p ro p ie d a d o u n e ve n t o .
● No p u e d e h a b e r h e re n cia m ú lt ip le , y t o d o t ip o d e d a t o h a d e h e re d a r d ire ct a o
in d ire ct a m e n t e d e System.Object.
● Lo s m o d ifica d o re s d e a cce s o a d m it id o s s o n :
Mo d ific a d o r Có d ig o d e s d e e l q u e e s a c c e s ib le e l m ie m b ro
p u b lic Cu a lq u ie r có d ig o
p riv a t e Có d ig o d e l m is m o t ip o d e d a t o
fa m ily Có d ig o d e l m is m o t ip o d e d a t o o d e h ijo s d e é s t e .
a s s e m b ly Có d ig o d e l m is m o e n s a m b la d o
fa m ily a n d a s s e m b ly Có d ig o d e l m is m o t ip o o d e h ijo s d e é s t e u b ica d o e n e l m is m o e n s a m b la d o
Có d ig o d e l m is m o t ip o o d e h ijo s d e é s t e , o có d ig o u b ica d o e n e l m is m o
fa m ily o r a s s e m b ly
e n s a m b la d o
Co m m o n La n g u a g e S p e c ific a t io n ( CLS )
● La s t a b la s h a n d e t e n e r u n a o m á s d im e n s io n e s , y e l n ú m e ro d e d im e n s io n e s d e
ca d a t a b la h a d e s e r fijo . Ad e m á s , h a n d e in d e xa rs e e m p e za n d o a co n t a r d e s d e 0 .
● La s e n u m e ra cio n e s n o p u e d e n im p le m e n t a r in t e rfa ce s , y t o d o s s u s ca m p o s h a n d e
s e r e s t á t ico s y d e l m is m o t ip o . El t ip o d e lo s ca m p o s d e u n a e n u m e ra ció n s ó lo
p u e d e s e r u n o d e e s t o s cu a t ro t ip o s b á s ico s : byte, short, int o long.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● Te m a 2 : In t ro d u cció n a C#
❍ Orig e n y n e ce s id a d d e u n n u e vo le n g u a je
❍ Ca ra ct e rís t ica s d e C#
❍ Es crit u ra d e a p lica cio n e s
Te m a 2 : I n t ro d u c c ió n a C#
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
Orig e n y n e c e s id a d d e u n n u e v o le n g u a je
Au n q u e e s p o s ib le e s crib ir có d ig o p a ra la p la t a fo rm a . NET e n m u ch o s o t ro s le n g u a je s , C# e s e l
ú n ico q u e h a s id o d is e ñ a d o e s p e cífica m e n t e p a ra s e r u t iliza d o e n e lla , p o r lo q u e p ro g ra m a rla
u s a n d o C# e s m u ch o m á s s e n cillo e in t u it ivo q u e h a ce rlo co n cu a lq u ie ra d e lo s o t ro s le n g u a je s ya
q u e C# ca re ce d e e le m e n t o s h e re d a d o s in n e ce s a rio s e n . NET. Po r e s t a ra zó n , s e s u e le d e cir q u e C#
e s e l le n g u a je n a t iv o d e . N ET
Un le n g u a je q u e h u b ie s e s id o id e a l u t iliza r p a ra e s t o s m e n e s t e re s e s Ja va , p e ro d e b id o a p ro b le m a s
co n la e m p re s a cre a d o ra d e l m is m o - S u n - , Micro s o ft h a t e n id o q u e d e s a rro lla r u n n u e vo le n g u a je
q u e a ñ a d ie s e a la s ya p ro b a d a s virt u d e s d e Ja va la s m o d ifica cio n e s q u e Micro s o ft t e n ía p e n s a d o
Ca ra c t e rís t ic a s d e C#
Co n la id e a d e q u e lo s p ro g ra m a d o re s m á s e xp e rim e n t a d o s p u e d a n o b t e n e r u n a vis ió n g e n e ra l d e l
le n g u a je , a co n t in u a ció n s e re co g e d e m a n e ra re s u m id a la s p rin cip a le s ca ra ct e rís t ica s d e C# Alg u n a
d e la s ca ra ct e rís t ica s a q u í s e ñ a la d a s n o s o n e xa ct a m e n t e p ro p ia s d e l le n g u a je s in o d e la p la t a fo rm a
. NET e n g e n e ra l. S in e m b a rg o , t a m b ié n s e co m e n t a n a q u í t a m b ié n e n t a n t o q u e t ie n e n re p e rcu s ió n
d ire ct a e n e l le n g u a je , a u n q u e s e in d ica rá e xp lícit a m e n t e cu á le s s o n e s t e t ip o d e ca ra ct e rís t ica s
ca d a ve z q u e s e t o q u e n :
● Mo d e rn id a d : C# in co rp o ra e n e l p ro p io le n g u a je e le m e n t o s q u e a lo la rg o d e lo s
a ñ o s h a id o d e m o s t rá n d o s e s o n m u y ú t ile s p a ra e l d e s a rro llo d e a p lica cio n e s y q u e
e n o t ro s le n g u a je s co m o Ja va o C+ + h a y q u e s im u la r, co m o u n t ip o b á s ico
decimal q u e p e rm it a re a liza r o p e ra cio n e s d e a lt a p re cis ió n co n re a le s d e 1 2 8 b it s
( m u y ú t il e n e l m u n d o fin a n cie ro ) , la in clu s ió n d e u n a in s t ru cció n foreach q u e
p e rm it a re co rre r co le ccio n e s co n fa cilid a d y e s a m p lia b le a t ip o s d e fin id o s p o r e l
u s u a rio , la in clu s ió n d e u n t ip o b á s ico string p a ra re p re s e n t a r ca d e n a s o la
d is t in ció n d e u n t ip o bool e s p e cífico p a ra re p re s e n t a r va lo re s ló g ico s .
● Orie n t a c ió n a o b je t o s : Co m o t o d o le n g u a je d e p ro g ra m a ció n d e p ro p ó s it o
g e n e ra l a ct u a l, C# e s u n le n g u a je o rie n t a d o a o b je t o s , a u n q u e e s o e s m á s b ie n
u n a ca ra ct e rís t ica d e l CTS q u e d e C# . Un a d ife re n cia d e e s t e e n fo q u e o rie n t a d o a
o b je t o s re s p e ct o a l d e o t ro s le n g u a je s co m o C+ + e s q u e e l d e C# e s m á s p u ro e n
t a n t o q u e n o a d m it e n n i fu n cio n e s n i va ria b le s g lo b a le s s in o q u e t o d o e l có d ig o y
d a t o s h a n d e d e fin irs e d e n t ro d e d e fin icio n e s d e t ip o s d e d a t o s , lo q u e re d u ce
p ro b le m a s p o r co n flict o s d e n o m b re s y fa cilit a la le g ib ilid a d d e l có d ig o .
En lo re fe re n t e a la e n ca p s u la ció n e s im p o rt a n t e s e ñ a la r q u e a p a rt e d e lo s t íp ico s
m o d ifica d o re s public, private y protected, C# a ñ a d e u n cu a rt o m o d ifica d o r lla m a d o
Po r o t ro la d o y a d ife re n cia d e Ja va , e n C# s e h a o p t a d o p o r h a ce r q u e t o d o s lo s m é t o d o s
s e a n p o r d e fe ct o s e lla d o s y q u e lo s re d e fin ib le s h a ya n d e m a rca rs e co n e l m o d ifica d o r
virtual ( co m o e n C+ + ) , lo q u e p e rm it e e vit a r e rro re s d e riva d o s d e re d e fin icio n e s
a ccid e n t a le s . Ad e m á s , u n e fe ct o s e cu n d a rio d e e s t o e s q u e la s lla m a d a s a lo s m é t o d o s s e rá n
m á s e ficie n t e s p o r d e fe ct o a l n o t e n e rs e q u e b u s ca r e n la t a b la d e fu n cio n e s virt u a le s la
im p le m e n t a ció n d e lo s m is m o s a la q u e s e h a d e lla m a r. Ot ro e fe ct o s e cu n d a rio e s q u e
p e rm it e q u e la s lla m a d a s a lo s m é t o d o s virt u a le s s e p u e d a n h a ce r m á s e ficie n t e m e n t e a l
co n t rib u ir a q u e e l t a m a ñ o d e d ich a t a b la s e re d u zca .
● Ge s t ió n a u t o m á t ic a d e m e m o ria : Co m o ya s e co m e n t ó , t o d o le n g u a je d e . NET
t ie n e a s u d is p o s ició n e l re co le ct o r d e b a s u ra d e l CLR. Es t o t ie n e e l e fe ct o e n e l
le n g u a je d e q u e n o e s n e ce s a rio in clu ir in s t ru ccio n e s d e d e s t ru cció n d e o b je t o s . S in
e m b a rg o , d a d o q u e la d e s t ru cció n d e lo s o b je t o s a t ra vé s d e l re co le ct o r d e b a s u ra
e s in d e t e rm in is t a y s ó lo s e re a liza cu a n d o é s t e s e a ct ive - ya s e a p o r fa lt a d e
m e m o ria , fin a liza ció n d e la a p lica ció n o s o licit u d e xp lícit a e n e l fu e n t e - , C#
t a m b ié n p ro p o rcio n a u n m e ca n is m o d e lib e ra ció n d e re cu rs o s d e t e rm in is t a a t ra vé s
d e la in s t ru cció n using.
● S e g u rid a d d e t ip o s : C# in clu ye m e ca n is m o s q u e p e rm it e n a s e g u ra r q u e lo s
a cce s o s a t ip o s d e d a t o s s ie m p re s e re a lice n co rre ct a m e n t e , lo q u e p e rm it e e vit a
q u e s e p ro d u zca n e rro re s d ifícile s d e d e t e ct a r p o r a cce s o a m e m o ria n o
p e rt e n e cie n t e a n in g ú n o b je t o y e s e s p e cia lm e n t e n e ce s a rio e n u n e n t o rn o
g e s t io n a d o p o r u n re co le ct o r d e b a s u ra . Pa ra e llo s e t o m a n m e d id a s d e l t ip o :
❍ S ó lo s e a d m it e n c o n v e rs io n e s e n t re t ip o s c o m p a t ib le s . Es t o e s , e n t re u n
t ip o y a n t e ce s o re s s u yo s , e n t re t ip o s p a ra lo s q u e e xp lícit a m e n t e s e h a ya
d e fin id o u n o p e ra d o r d e co n ve rs ió n , y e n t re u n t ip o y u n t ip o h ijo s u yo d e l
q u e u n o b je t o d e l p rim e ro a lm a ce n a s e u n a re fe re n cia d e l s e g u n d o
( d o w n c a s t in g ) Ob via m e n t e , lo ú lt im o s ó lo p u e d e co m p ro b a rlo e n t ie m p o d e
e je cu ció n e l CLR y n o e l co m p ila d o r, p o r lo q u e e n re a lid a d e l CLR y e l
co m p ila d o r co la b o ra n p a ra a s e g u ra r la co rre cció n d e la s co n ve rs io n e s .
❍ No s e p u e d e n u s a r v a ria b le s n o in ic ia liz a d a s . El co m p ila d o r d a a lo s
ca m p o s u n va lo r p o r d e fe ct o co n s is t e n t e e n p o n e rlo s a ce ro y co n t ro la
m e d ia n t e a n á lis is d e l flu jo d e co n t ro l d e l fu e n t e q u e n o s e le a n in g u n a
va ria b le lo ca l s in q u e s e le h a ya a s ig n a d o p re via m e n t e a lg ú n va lo r.
❍ S e co m p ru e b a q u e t o d o a c c e s o a lo s e le m e n t o s d e u n a t a b la s e re a lice
co n ín d ice s q u e s e e n cu e n t re n d e n t ro d e l ra n g o d e la m is m a .
❍ S e p u e d e co n t ro la r la p ro d u c c ió n d e d e s b o rd a m ie n t o s e n o p e ra cio n e s
a rit m é t ica s , in fo rm á n d o s e d e e llo co n u n a e xce p ció n cu a n d o o cu rra . S in
e m b a rg o , p a ra co n s e g u irs e u n m a yo r re n d im ie n t o e n la a rit m é t ica e s t a s
co m p ro b a cio n e s n o s e h a ce n p o r d e fe ct o a l o p e ra r co n va ria b le s s in o s ó lo
co n co n s t a n t e s ( s e p u e d e n d e t e ct a r e n t ie m p o d e co m p ila ció n )
❍ A d ife re n cia d e Ja va , C# in clu ye d e le g a d o s , q u e s o n s im ila re s a lo s
p u n t e ro s a fu n cio n e s d e C+ + p e ro s ig u e n u n e n fo q u e o rie n t a d o a o b je t o s ,
p u e d e n a lm a ce n a r re fe re n cia s a va rio s m é t o d o s s im u lt á n e a m e n t e , y s e
co m p ru e b a q u e lo s m é t o d o s a lo s q u e a p u n t e n t e n g a n p a rá m e t ro s y va lo r d e
re t o rn o d e l t ip o in d ica d o a l d e fin irlo s .
❍ Pu e d e n d e fin irs e m é t o d o s q u e a d m it a n u n n ú m e ro in d e fin id o d e p a rá m e t ro s
d e u n cie rt o t ip o , y a d ife re n cia le n g u a je s co m o C/ C+ + , e n C# s ie m p re s e
co m p ru e b a q u e lo s va lo re s q u e s e le s p a s e n e n ca d a lla m a d a s e a n d e lo s
t ip o s a p ro p ia d o s .
● I n s t ru c c io n e s s e g u ra s : Pa ra e vit a r e rro re s m u y co m u n e s , e n C# s e h a n
im p u e s t o u n a s e rie d e re s t riccio n e s e n e l u s o d e la s in s t ru ccio n e s d e co n t ro l m á s
co m u n e s . Po r e je m p lo , la g u a rd a d e t o d a co n d ició n h a d e s e r u n a e xp re s ió n
co n d icio n a l y n o a rit m é t ica , co n lo q u e s e e vit a n e rro re s p o r co n fu s ió n d e l o p e ra d o r
d e ig u a ld a d ( ==) co n e l d e a s ig n a ció n ( =) ; y t o d o ca s o d e u n switch h a d e
t e rm in a r e n u n break o goto q u e in d iq u e cu á l e s la s ig u ie n t e a cció n a re a liza r, lo
q u e e vit a la e je cu ció n a ccid e n t a l d e ca s o s y fa cilit a s u re o rd e n a ció n .
● Co m p a t ib le : Pa ra fa cilit a r la m ig ra ció n d e p ro g ra m a d o re s , C# n o s ó lo m a n t ie n e
u n a s in t a xis m u y s im ila r a C, C+ + o Ja va q u e p e rm it e in clu ir d ire ct a m e n t e e n
có d ig o e s crit o e n C# fra g m e n t o s d e có d ig o e s crit o e n e s t o s le n g u a je s , s in o q u e e l
CLR t a m b ié n o fre ce , a t ra vé s d e lo s lla m a d o s P la t fo rm I n v o c a t io n S e rv ic e s
( P I n v o k e ) , la p o s ib ilid a d d e a cce d e r a có d ig o n a t ivo e s crit o co m o fu n cio n e s
s u e lt a s n o o rie n t a d a s a o b je t o s t a le s co m o la s DLLs d e la API Win 3 2 . Nó t e s e q u e la
ca p a cid a d d e u s a r p u n t e ro s e n có d ig o in s e g u ro p e rm it e q u e s e p u e d a a cce d e r co n
fa cilid a d a e s t e t ip o d e fu n cio n e s , ya q u e é s t a s m u ch a s ve ce s e s p e ra n re cib ir o
d e vu e lve n p u n t e ro s .
Es c rit u ra d e a p lic a c io n e s
Ap lic a c ió n b á s ic a ¡Ho la Mu n d o !
1: class HolaMundo
2: {
3: static void Main()
4: {
5: System.Console.WriteLine("¡Hola Mundo!");
6: }
7: }
El m é t o d o WriteLine() s e u s a rá m u y a m e n u d o e n lo s p ró xim o s t e m a s , p o r lo q u e e s co n ve n ie n t e
s e ñ a la r a h o ra q u e u n a fo rm a d e lla m a rlo q u e s e u t iliza rá e n re p e t id a s o ca s io n e s co n s is t e e n p a s a rle
u n n ú m e ro in d e fin id o d e o t ro s p a rá m e t ro s d e cu a lq u ie r t ip o e in clu ir e n e l p rim e ro s u b ca d e n a s d e la
fo rm a {i}. Co n e llo s e co n s ig u e q u e s e m u e s t re p o r la ve n t a n a d e co n s o la la ca d e n a q u e s e le p a s a
co m o p rim e r p a rá m e t ro p e ro s u s t it u yé n d o le la s s u b ca d e n a s {i} p o r e l va lo r co n ve rt id o e n ca d e n a
d e t e xt o d e l p a rá m e t ro q u e o cu p e la p o s ició n i+ 2 e n la lla m a d a a WriteLine(). Po r e je m p lo , la
s ig u ie n t e in s t ru cció n m o s t ra ría Te n g o 5 a ñ o s p o r p a n t a lla s i x va lie s e 5 :
Pa ra in d ica r có m o co n ve rt ir ca d a o b je t o e n u n ca d e n a d e t e xt o b a s t a re d e fin ir s u m é t o d o
ToString(), a u n q u e e s t o e s a lg o q u e n o s e ve rá h a s t a e l Te m a 5 : Cla s e s .
An t e s d e s e g u ir e s im p o rt a n t e re s a lt a r q u e C# e s s e n s ib le a la s m a yú s cu la s , lo s q u e s ig n ifica q u e n o
d a ig u a l la ca p it a liza ció n co n la q u e s e e s crib a n lo s id e n t ifica d o re s . Es d e cir, n o e s lo m is m o e s crib ir
Co n s o le q u e COn s o le o CONS OLE, y s i s e h a ce d e a lg u n a d e la s d o s ú lt im a s fo rm a s e l co m p ila d o r
p ro d u cirá u n e rro r d e b id o a q u e e n e l e s p a cio d e n o m b re s System n o e xis t e n in g u n a cla s e co n
d ich o s n o m b re s . En e s t e s e n t id o , ca b e s e ñ a la r q u e u n e rro r co m ú n e n t re p ro g ra m a d o re s
a co s t u m b ra d o s a Ja va e s lla m a r a l p u n t o d e e n t ra d a m a in e n ve z d e Ma in , lo q u e p ro vo ca u n e rro r
a l co m p ila r e je cu t a b le s e n t a n t o q u e e l co m p ila d o r n o d e t e ct a rá n in g u n a d e fin ició n d e p u n t o d e
e n t ra d a .
P u n t o s d e e n t ra d a
Co m o s e ve , h a y ve rs io n e s d e Main() q u e d e vu e lve n u n va lo r d e t ip o in t . Un in t n o e s m á s q u e u n
t ip o d e d a t o s ca p a z d e a lm a ce n a r va lo r e n t e ro s co m p re n d id o s e n t re - 2 . 1 4 7 1 4 8 3 . 6 4 8 y
2 . 1 4 7 1 4 8 3 . 6 4 7 , y e l n ú m e ro d e vu e lt o p o r Main() s e ría in t e rp re t a d o co m o có d ig o d e re t o rn o d e la
a p lica ció n . És t e va lo r s u e le u s a rs e p a ra in d ica r s i la a p lica ció n a t e rm in a d o co n é xit o ( g e n e ra lm e n t e
va lo r 0 ) o n o ( va lo r s e g ú n la ca u s a d e la t e rm in a ció n a n o rm a l) , y e n e l Te m a 8 : Mé t o d o s s e
e xp lica rá co m o d e vo lve r va lo re s .
Ta m b ié n h a y ve rs io n e s d e Main() q u e t o m a n u n p a rá m e t ro d o n d e s e a lm a ce n a rá la lis t a d e
a rg u m e n t o s co n lo s q u e s e lla m ó a la a p lica ció n , p o r lo q u e s ó lo e s ú t il u s a r e s t a s ve rs io n e s d e l
p u n t o d e e n t ra d a s i la a p lica ció n va a u t iliza r d ich o s a rg u m e n t o s p a ra a lg o . El t ip o d e e s t e
p a rá m e t ro e s string[], lo q u e s ig n ifica q u e e s u n a t a b la d e ca d e n a s d e t e xt o ( e n e l Te m a 5 :
Ca m p o s s e e xp lica rá d e t e n id a m e n t e q u é s o n la s t a b la s y la s ca d e n a s ) , y s u n o m b re - q u e e s e l q u e
h a b rá d e u s a rs e d e n t ro d e l có d ig o d e Main() p a ra h a ce rle re fe re n cia - e s args e n e l e je m p lo ,
a u n q u e p o d ría d á rs e le cu a lq u ie r o t ro
Co m p ila c ió n e n lín e a d e c o m a n d o s
csc HolaMundo.cs
¡Hola Mundo!
Nó t e s e q u e a u n q u e e l n o m b re w in e x e d é la s e n s a ció n d e q u e e s t e va lo r p a ra la o p ció n / t s ó lo
p e rm it e g e n e ra r e je cu t a b le s d e ve n t a n a s , e n re a lid a d lo q u e p e rm it e e s g e n e ra r e je cu t a b le s s in
ve n t a n a d e co n s o la a s o cia d a . Po r t a n t o , t a m b ié n p u e d e u s a rs e p a ra g e n e ra r e je cu t a b le s q u e n o
t e n g a n n in g u n a in t e rfa z a s o cia d a , n i d e co n s o la n i g rá fica .
S i e n lu g a r d e u n e je cu t a b le - ya s e a d e co n s o la o d e ve n t a n a s - s e d e s e a o b t e n e r u n a lib re ría ,
e n t o n ce s a l co m p ila r h a y q u e p a s a r a l co m p ila d o r la o p ció n / t co n e l va lo r lib ra ry . Po r e je m p lo ,
s ig u ie n d o co n e l e je m p lo in icia l h a b ría q u e e s crib ir:
En g e n e ra l / r p e rm it e re fe re n cia r a t ip o s d e fin id o s e n cu a lq u ie r e n s a m b la d o , p o r lo q u e e l va lo r q u e
s e le in d iq u e t a m b ié n p u e d e s e r e l n o m b re d e u n e je cu t a b le . Ad e m á s , e n ca d a co m p ila ció n e s
p o s ib le re fe re n cia r m ú lt ip le s e n s a m b la d o s ya s e a in clu iye n d o la o p ció n / r u n a ve z p o r ca d a u n o o
in clu iye n d o m ú lt ip le s re fe re n cia s e n u n a ú n ica o p ció n / r u s a n d o co m a s o p u n t o s y co m a s co m o
s e p a ra d o re s . Po r e je m p lo , la s s ig u ie n t e s t re s lla m a d a s a l co m p ila d o r s o n e q u iva le n t e s :
Ta n t o la s lib re ría s co m o lo s e je cu t a b le s s o n e n s a m b la d o s . Pa ra g e n e ra r u n m ó d u lo d e có d ig o q u e n o
fo rm e p a rt e d e n in g ú n e n s a m b la d o s in o q u e co n t e n g a d e fin icio n e s d e t ip o s q u e p u e d a n a ñ a d irs e a
e n s a m b la d o s q u e s e co m p ile n p o s t e rio rm e n t e , e l va lo r q u e h a d e d a rs e a l co m p ila r a la o p ció n / t e s
m o d u le . Po r e je m p lo :
Nó t e s e q u e e l n o m b re q u e p o r d e fe ct o s e d é a l e je cu t a b le g e n e ra d o s ie m p re e s ig u a l a l d e l p rim e r
fu e n t e e s p e cifica d o p e ro co n la e xt e n s ió n p ro p ia d e l t ip o d e co m p ila ció n re a liza d a ( . e x e p a ra
e je cu t a b le s , . d ll p a ra lib re ría s y . n e t m o d u le p a ra m ó d u lo s ) S in e m b a rg o , p u e d e e s p e cificá rs e co m o
va lo r e n la o p ció n / o u t d e l co m p ila d o r cu a lq u ie r o t ro t a l y co m o m u e s t ra e l s ig u ie n t e e je m p lo q u e
co m p ila e l fich e ro A. cs co m o u n a lib re ría d e n o m b re Lib . e xe :
Vé a s e q u e a u n q u e s e h a ya d a d o u n n o m b re t e rm in a d o e n . e x e a l fich e ro re s u lt a n t e , é s t e s ig u e
s ie n d o u n a lib re ría y n o u n e je cu t a b le e in t e n t a r e je cu t a rlo p ro d u ciría u n m e n s a je d e e rro r.
Ob via m e n t e n o t ie n e m u ch o s e n t id o d a rle e s a e xt e n s ió n , y s ó lo s e le h a d a d o e n e s t e e je m p lo p a ra
d e m o s t ra r q u e , a u n q u e re co m e n d a b le , la e xt e n s ió n d e l fich e ro n o t ie n e p o rq u é co rre s p o n d e rs e
re a lm e n t e co n e l t ip o d e fich e ro d e l q u e s e t ra t e .
Co m p ila c ió n c o n Vis u a l S t u d io . N ET
En e l re cu a d ro d e la ve n t a n a m o s t ra d a e t iq u e t a d o co m o P ro je c t Ty p e s s e h a d e s e le ccio n a r e l t ip o
d e p ro ye ct o a cre a r. Ob via m e n t e , s i s e va a t ra b a ja r e n C# la o p ció n q u e h a b rá q u e e s co g e r e n la
m is m a s e rá s ie m p re Vis u a l C# Pro je ct s .
Po r ú lt im o , e n e l re cu a d ro d e t e xt o N a m e s e h a d e e s crib ir e l n o m b re a d a r a l p ro ye ct o y e n
Lo c a t io n e l d e l d ire ct o rio b a s e a s o cia d o a l m is m o . Nó t e s e q u e b a jo d e Lo c a t io n a p a re ce rá u n
m e n s a je in fo rm a n d o s o b re cu a l s e rá e l d ire ct o rio d o n d e fin a lm e n t e s e a lm a ce n a rá n lo s a rch ivo s d e l
p ro ye ct o , q u e s e rá e l re s u lt a n t e d e co n ca t e n a r la ru t a e s p e cifica d a p a ra e l d ire ct o rio b a s e y e l
n o m b re d e l p ro ye ct o .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 3 : El p re p ro ce s a d o r
❍ Co n ce p t o d e p re p ro ce s a d o r
❍ Dire ct iva s d e p re p ro ce s a d o
Te m a 3 : El p re p ro c e s a d o r
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
Co n c e p t o d e p re p ro c e s a d o r
D ire c t iv a s d e p re p ro c e s a d o
Co n c e p t o d e d ire c t iv a . S in t a x is
El p re p ro ce s a d o r n o in t e rp re t a d e n in g u n a m a n e ra e l có d ig o fu e n t e d e l fich e ro , s in o q u e s ó lo in t e rp re t a d e d ich o
fich e ro lo q u e s e d e n o m in a n d ire c t iv a s d e p re p ro c e s a d o . Es t a s d ire ct iva s s o n lín e a s d e t e xt o d e l fich e ro fu e n t e
q u e s e ca ra ct e riza n p o rq u e e n e lla s e l p rim e r ca rá ct e r n o b la n co q u e a p a re ce e s u n a a lm o h a d illa ( ca rá ct e r # ) Po r
e je m p lo :
#define TEST
#error Ha habido un error fatal
#<nombreDirectiva> <valorDirectiva>
D e fin ic ió n d e id e n t ific a d o re s d e p re p ro c e s a d o
#define <nombreIdentificador>
#define PRUEBA
Po r co n ve n io s e d a a e s t o s id e n t ifica d o re s n o m b re s e n lo s q u e t o d a s la s le t ra s s e e s crib e n e n m a yú s cu la s , co m o e n e l
e je m p lo a n t e rio r. Au n q u e e s s ó lo u n co n ve n io y n a d a o b lig a a u s a rlo , é s t a s e rá la n o m e n cla t u ra q u e u s a re m o s e n e l
p re s e n t e d o cu m e n t o , q u e e s la u s a d a p o r Micro s o ft e n s u s có d ig o s d e e je m p lo . Co n vie n e fa m ilia riza rs e co n e lla
p o rq u e p o r u n la d o h a y m u ch o có d ig o e s crit o q u e la u s a y p o r o t ro u s a rla fa cilit a la le ct u ra d e n u e s t ro có d ig o a lo s
d e m á s a l s e r la n o t a ció n q u e e s p e ra rá n e n co n t ra r.
class A
#define PRUEBA
{}
S in e m b a rg o , a u n q u e n o p u e d a h a b e r có d ig o a n t e s d e u n # d e fin e , s í q u e e s p o s ib le in clu ir a n t e s d e é l o t ra s
d ire ct iva s d e p re p ro ce s a d o co n t o t a l lib e rt a d .
Elim in a c ió n d e id e n t ific a d o re s d e p re p ro c e s a d o
#undef <nombreIdentificador>
#define VERSION1
#undef VERSION1
#undef VERSION1
Co m p ila c ió n c o n d ic io n a l
#if <condición1>
<código1>
#elif <condición2>
<código2>
...
#else
<códigoElse>
#endif
#define PRUEBA
using System;
class A
{
public static void Main()
{
#if PRUEBA
Console.Write ("Esto es una prueba");
#if TRAZA
Console.Write(" con traza");
#elif !TRAZA
Console.Write(" sin traza");
#endif
#endif
}
}
using System;
class A
{
public static void Main()
{
Console.Write("Esto es una prueba");
Console.Write(" sin traza");
}
}
using System;
class A
{
public static void Main()
{
Console.Write ("Esto es una prueba");
Console.Write(" sin traza");
}
}
Ge n e ra c ió n d e a v is o s y e rro re s
#warning <mensajeAviso>
#error <mensajeError>
Lo q u e s e m o s t ra rá e n p a n t a lla e s u n m e n s a je d e la s ig u ie n t e fo rm a :
Ca m b io s e n la n u m e ra c ió n d e lín e a s
Ma rc a c ió n d e re g io n e s d e c ó d ig o
#region <nombreRegión>
<código>
#endregion
Ilustración 4: Código de
región expandido
Ilustración 5: Código de
región contraído
#region RegiónErrónea
#if A
#endregion
#endif
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 4 : As p e ct o s lé xico s
❍ Co m e n t a rio s
❍ Id e n t ifica d o re s
❍ Pa la b ra s re s e rva d a s
❍ Lit e ra le s
❍ Op e ra d o re s
Te m a 4 : As p e c t o s lé x ic o s
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
Co m e n t a rio s
/*<texto>*/
/* Esto es un comentario
que ejemplifica cómo se escribe comentarios que ocupen varias líneas */
Ah o ra b ie n , h a y q u e t e n e r cu id a d o co n e l h e ch o d e q u e n o e s p o s ib le a n id a r co m e n t a rio s d e e s t e t ip o . Es d e cir, n o va le
e s crib ir co m e n t a rio s co m o e l s ig u ie n t e :
// <texto>
Y u n e je m p lo d e s u u s o e s :
// Este comentario ejemplifica como escribir comentarios abreviados de una sola línea
I d e n t ific a d o re s
\u<dígito><dígito><dígito><dígito>
\U<dígito><dígito><dígito><dígito><dígito><dígito><dígito><dígito>
P a la b ra s re s e rv a d a s
abstract, as, base, bool, break, byte, case, catch, char, checked, class, const,
continue, decimal, default, delegate, do, double, else, enum, event, explicit,
extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int,
interface,
internal, lock, is, long, namespace, new, null, object, operator, out, override,
params, private, protected, public, readonly, ref, return, sbyte, sealed, short,
sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof,
uint, ulong, unchecked, unsafe, ushort, using, virtual, void, while
s e cu e n cia d e s ím b o lo s .
class @class
{
static void @static(bool @bool)
{
if (@bool)
Console.WriteLine("cierto");
else
Console.WriteLine("falso");
}
}
class A
{
int a; // (1)
int @a; // (2)
Ha y q u e s e ñ a la r p o r ú lt im o u n a co s a re s p e ct o a l ca rá ct e r @: s ó lo p u e d e p re ce d e r a l n o m b re d e u n id e n t ifica d o r, p e ro n o
p u e d e e s t a r co n t e n id o d e n t ro d e l m is m o . Es d e cir, id e n t ifica d o re s co m o i5322@fie.us.es n o s o n vá lid o s .
Lit e ra le s
● Lit e ra le s e n t e ro s : Un n ú m e ro e n t e ro s e p u e d e re p re s e n t a r e n C# t a n t o e n fo rm a t o d e cim a l co m o
h e xa d e cim a l. En e l p rim e r ca s o b a s t a e s crib ir lo s d íg it o s d e cim a le s ( 0-9) d e l n ú m e ro u n o s t ra s o t ro s ,
m ie n t ra s q u e e n e l s e g u n d o h a y q u e p re ce d e r lo s d íg it o s h e xa d e cim a le s ( 0-9, a-f, A-F) co n e l p re fijo 0x.
En a m b o s ca s o s e s p o s ib le p re ce d e r e l n ú m e ro d e lo s o p e ra d o re s + ó - p a ra in d ica r s i e s p o s it ivo o
n e g a t ivo , a u n q u e s i n o s e p o n e n a d a s e co n s id e ra rá q u e e s p o s it ivo . Eje m p lo s d e lit e ra le s e n t e ro s s o n 0,
5, +15, -23, 0x1A, -0x1a, e t c
Ca rá c t e r Có d ig o d e e s c a p e Un ic o d e Có d ig o d e e s c a p e e s p e c ia l
Co m illa s im p le \ u0027 \'
Co m illa d o b le \ u0022 \"
Ca rá ct e r n u lo \ u0000 \0
Ala rm a \ u0007 \a
Re t ro ce s o \ u0008 \b
S a lt o d e p á g in a \ u000C \f
Nu e va lín e a \ u000A \n
Re t o rn o d e ca rro \ u000D \r
Ta b u la ció n h o rizo n t a l \ u 0 0 0 9 \t
Ta b u la ció n ve rt ica l \ u000B \v
Ba rra in ve rt id a \ u005C \\
Ta b la 4 . 1 : Có d ig o s d e e s ca p e e s p e cia le s
Ap a rt e d e p a ra re p re s e n t a r lo s ca ra ct e re s d e la t a b la a n t e rio r, t a m b ié n e s p o s ib le u s a r lo s có d ig o s d e e s ca p e Un ico d e p a ra
re p re s e n t a r cu a lq u ie r có d ig o Un ico d e , lo q u e s u e le u s a rs e p a ra re p re s e n t a r lit e ra le s d e ca ra ct e re s n o in clu id o s e n lo s t e cla d o s
e s t á n d a re s .
Lit e ra l d e c a d e n a I n t e rp re t a d o c o m o . . .
"Hola\tMundo" Hola Mundo
@"Hola\tMundo" Hola\tMundo
@"Hola Hola
Mundo" Mundo
Ta b la 4 . 2 : Eje m p lo s d e lit e ra le s d e ca d e n a p la n o s
El ú lt im o e je m p lo d e la t a b la s e h a a p ro ve ch a d o p a ra m o s t ra r q u e s i d e n t ro d e u n lit e ra l d e ca d e n a p la n o s e d e s e a in clu ir
ca ra ct e re s d e co m illa d o b le s in q u e s e a n co n fu n d id o s co n e l fin a l d e la ca d e n a b a s t a d u p lica rlo s .
Op e ra d o re s
Un o p e ra d o r e n C# e s u n s ím b o lo fo rm a d o p o r u n o o m á s ca ra ct e re s q u e p e rm it e re a liza r u n a d e t e rm in a d a o p e ra ció n e n t re
u n o o m á s d a t o s y p ro d u ce u n re s u lt a d o .
checked (<expresiónAritmética>)
unchecked(<expresiónAritmética>)
● Op e ra c io n e s d e a s ig n a c ió n : Pa ra re a liza r a s ig n a cio n e s s e u s a e n C# e l o p e ra d o r =, o p e ra d o r q u e
a d e m á s d e re a liza r la a s ig n a ció n q u e s e le s o licit a d e vu e lve e l va lo r a s ig n a d o . Po r e je m p lo , la e xp re s ió n a
= b a s ig n a a la va ria b le a e l va lo r d e la va ria b le b y d e vu e lve d ich o va lo r, m ie n t ra s q u e la e xp re s ió n c = a
= b a s ig n a a c y a e l va lo r d e b ( e l o p e ra d o r = e s a s o cia t ivo p o r la d e re ch a )
La ve n t a ja d e u s a r lo s o p e ra d o re s ++ y -- e s q u e e n m u ch a s m á q u in a s s o n m á s e ficie n t e s q u e e l re s t o d e fo rm a s d e re a liza r
s u m a s o re s t a s d e u n a u n id a d , p u e s e l co m p ila d o r t ra d u cirlo s e n u n a ú n ica in s t ru cció n e n có d ig o m á q u in a .
● Op e ra c io n e s d e a c c e s o a t a b la s : Un a t a b la e s u n co n ju n t o d e o rd e n a d o d e o b je t o s d e t a m a ñ o fijo .
Pa ra a cce d e r a cu a lq u ie r e le m e n t o d e e s t e co n ju n t o s e a p lica e l o p e ra d o r p o s t fijo [] s o b re la t a b la p a ra
in d ica r e n t re co rch e t e s la p o s ició n q u e o cu p a e l o b je t o a l q u e s e d e s e a a cce d e r d e n t ro d e l co n ju n t o . Es
d e cir, e s t e o p e ra d o r s e u s a a s í:
[<posiciónElemento>]
Un e je m p lo d e s u u s o e n e l q u e s e a s ig n a a l e le m e n t o q u e o cu p a la p o s ició n 3 e n u n a t a b la d e n o m b re t a b la Pru e b a e l
va lo r d e l e le m e n t o q u e o cu p a la p o s ició n 1 8 d e d ich a t a b la e s e l s ig u ie n t e :
tablaPrueba[3] = tablaPrueba[18];
La s t a b la s s e e s t u d ia n d e t e n id a m e n t e e n e l Te m a 7 : Va ria b le s y t ip o s d e d a t o s
● Op e ra d o r c o n d ic io n a l: Es e l ú n ico o p e ra d o r in clu id o e n C# q u e t o m a 3 o p e ra n d o s , y s e u s a a s í:
En e s t e e je m p lo , s i e l va lo r d e la va ria b le a e s s u p e rio r a 0 s e a s ig n a rá a b e l va lo r d e a, m ie n t ra s q u e e n ca s o
co n t ra rio e l va lo r q u e s e le a s ig n a rá s e rá 0 .
● Op e ra c io n e s d e d e le g a d o s : Un d e le g a d o e s u n o b je t o q u e p u e d e a lm a ce n a r e n re fe re n cia s a u n o o
m á s m é t o d o s y a t ra vé s d e l cu a l e s p o s ib le lla m a r a e s t o s m é t o d o s . Pa ra a ñ a d ir o b je t o s a u n d e le g a d o s e
u s a n lo s o p e ra d o re s + y +=, m ie n t ra s q u e p a ra q u it á rs e lo s s e u s a n lo s o p e ra d o re s - y -=. Es t o s co n ce p t o s
s e e s t u d ia rá n d e t a lla d a m e n t e e n e l Te m a 1 3 : Ev e n t o s y d e le g a d o s
● Op e ra c io n e s d e a c c e s o a o b je t o s : Pa ra a cce d e r a lo s m ie m b ro s d e u n o b je t o s e u s a e l o p e ra d o r .,
cu ya s in t a xis e s :
<objeto>.<miembro>
S i a e s u n o b je t o , e je m p lo s d e có m o lla m a r a d ife re n t e s m ie m b ro s s u yo s s o n :
No s e p re o cu p e s i n o co n o ce lo s co n ce p t o s d e m é t o d o s , p ro p ie d a d e s , e ve n t o s y d e le g a d o s e n lo s q u e s e b a s a e s t e
e je m p lo , p u e s s e e xp lica n d e t a lla d a m e n t e e n t e m a s p o s t e rio re s .
● Op e ra c io n e s d e o b t e n c ió n d e in fo rm a c ió n s o b re t ip o s : De t o d o s lo s o p e ra d o re s q u e n o s p e rm it e n
o b t e n e r in fo rm a ció n s o b re t ip o s d e d a t o s e l m á s im p o rt a n t e e s typeof, cu ya fo rm a d e u s o e s :
typeof(<nombreTipo>)
S i lo q u e q u e re m o s e s d e t e rm in a r s i u n a d e t e rm in a d a e xp re s ió n e s d e u n t ip o u o t ro , e n t o n ce s e l o p e ra d o r a u s a r e s
is, cu ya s in t a xis e s la s ig u ie n t e :
<expresión> is <nombreTipo>
El s ig n ifica d o d e e s t e o p e ra d o r e s e l s ig u ie n t e : s e e va lú a <expresión>. S i e l re s u lt a d o d e é s t a e s d e l t ip o cu yo
n o m b re s e in d ica e n < n o m b re Tip o > s e d e vu e lve t ru e ; y s i n o , s e d e vu e lve fa ls e . Co m o s e ve rá e n e l Te m a 5 : Cla s e s ,
e s t e o p e ra d o r s u e le u s a rs e e n m é t o d o s p o lim ó rfico s .
sizeof(<nombreTipo>)
s iz e o f s ó lo p u e d e u s a rs e d e n t ro d e có d ig o in s e g u ro , q u e p o r a h o ra b a s t a co n s id e ra r q u e s o n zo n a s d e có d ig o d o n d e
e s p o s ib le u s a r p u n t e ro s . No s e rá h a s t a e l Te m a 1 8 : Có d ig o in s e g u ro cu a n d o lo t ra t a re m o s e n p ro fu n d id a d .
Ad e m á s , sizeof s ó lo s e p u e d e a p lica r s o b re n o m b re s d e t ip o s d e d a t o s cu yo s o b je t o s s e p u e d a n a lm a ce n a r
d ire ct a m e n t e e n p ila . Es d e cir, q u e s e a n e s t ru ct u ra s ( s e ve rá n e n e l Te m a 1 3 ) o t ip o s e n u m e ra d o s ( s e ve rá n e n e l
Te m a 1 4 )
● Op e ra c io n e s d e c re a c ió n d e o b je t o s : El o p e ra d o r m á s t íp ica m e n t e u s a d o p a ra cre a r o b je t o s e s n e w ,
q u e s e u s a a s í:
new <nombreTipo>(<parametros>)
stackalloc <nombreTipo>[<nElementos>]
● Op e ra c io n e s d e c o n v e rs ió n : Pa ra co n ve rt ir u n o s o b je t o s e n o t ro s s e u t iliza e l o p e ra d o r d e co n ve rs ió n ,
q u e n o co n s is t e m á s q u e e n p re ce d e r la e xp re s ió n a co n ve rt ir d e l n o m b re e n t re p a ré n t e s is d e l t ip o a l q u e
s e d e s e a co n ve rt ir e l re s u lt a d o d e e va lu a rla . Po r e je m p lo , s i l e s u n a va ria b le d e t ip o lo n g y s e d e s e a
a lm a ce n a r s u va lo r d e n t ro d e u n a va ria b le d e t ip o in t lla m a d a i, h a b ría q u e co n ve rt ir p re via m e n t e s u
va lo r a t ip o in t a s í:
Lo s t ip o s in t y lo n g e s t á n p re d e fin id o s e n C# y p e rm it e a lm a ce n a r va lo re s e n t e ro s co n s ig n o . La ca p a cid a d d e in t e s
d e 3 2 b it s , m ie n t ra s q u e la d e lo n g e s d e 6 4 b it s . Po r t a n t o , a n o s e r q u e h a g a m o s u s o d e l o p e ra d o r d e co n ve rs ió n , e l
co m p ila d o r n o n o s d e ja rá h a ce r la a s ig n a ció n , ya q u e a l s e r m a yo r la ca p a cid a d d e lo s lo n g , n o t o d o va lo r q u e s e
p u e d a a lm a ce n a r e n u n lo n g t ie n e p o rq u é p o d e rs e a lm a ce n a r e n u n in t . Es d e cir, n o e s vá lid o :
<expresión> as <tipoDestino>
p = t as Persona;
Un a co n s e cu e n cia d e e s t o e s q u e e l p ro g ra m a d o r p u e d e d e fin ir có m o h a ce r co n ve rs io n e s d e t ip o s p o r é l
d e fin id o s y o t ro s m e d ia n t e e l o p e ra d o r (), p e ro n o m e d ia n t e as.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 5 : Cla s e s
❍ De fin ició n d e cla s e s
❍ Cre a ció n d e o b je t o s
❍ He re n cia y m é t o d o s virt u a le s
❍ La cla s e p rim ig e n ia : S ys t e m . Ob je ct
❍ Po lim o rfis m o
❍ Ocu lt a ció n d e m ie m b ro s
❍ Mie m b ro s d e t ip o
❍ En ca p s u la ció n
Te m a 5 : Cla s e s
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
D e fin ic ió n d e c la s e s
Co n c e p t o s d e c la s e y o b je t o
C# e s u n le n g u a je o rie n t a d o a o b je t o s p u ro , lo q u e s ig n ifica q u e t o d o co n lo q u e va m o s a t ra b a ja r e n e s t e le n g u a je s o n
o b je t o s . Un o b je t o e s u n a g re g a d o d e d a t o s y d e m é t o d o s q u e p e rm it e n m a n ip u la r d ich o s d a t o s , y u n p ro g ra m a e n C# n o
e s m á s q u e u n co n ju n t o d e o b je t o s q u e in t e ra ccio n a n u n o s co n o t ro s a t ra vé s d e s u s m é t o d o s .
S in t a x is d e d e fin ic ió n d e c la s e s
class <nombreClase>
{
<miembros>
}
class A
{}
Au n q u e e n C# h a y m u ch o s t ip o s d e m ie m b ro s d is t in t o s , p o r a h o ra va m o s a co n s id e ra r q u e e s t o s ú n ica m e n t e p u e d e n s e r
ca m p o s o m é t o d o s y va m o s a h a b la r u n p o co a ce rca d e e llo s y d e có m o s e d e fin e n :
● Ca m p o s : Un c a m p o e s u n d a t o co m ú n a t o d o s lo s o b je t o s d e u n a d e t e rm in a d a cla s e . Pa ra d e fin ir
cu á le s s o n lo s ca m p o s d e lo s q u e u n a cla s e d is p o n e s e u s a la s ig u ie n t e s in t a xis d e n t ro d e la zo n a
s e ñ a la d a co m o <miembros> e n la d e fin ició n d e la m is m a :
<tipoCampo> <nombreCampo>;
El n o m b re q u e d e m o s a l ca m p o p u e d e s e r cu a lq u ie r id e n t ifica d o r q u e q u e ra m o s s ie m p re y cu a n d o s ig a la s re g la s d e s crit a s
e n e l Te m a 4 : As p e ct o s Lé x ico s p a ra la e s crit u ra d e id e n t ifica d o re s y n o co in cid a co n e l n o m b re d e n in g ú n o t ro m ie m b ro
p re via m e n t e d e fin id o e n la d e fin ició n d e cla s e .
Lo s ca m p o s d e u n o b je t o s o n a s u ve z o b je t o s , y e n <tipoCampo> h e m o s d e in d ica r cu á l e s e l t ip o d e d a t o d e l o b je t o q u e
va m o s a cre a r. És t e t ip o p u e d e co rre s p o n d e rs e co n cu a lq u ie ra q u e lo s p re d e fin id o s e n la BCL o co n cu a lq u ie r o t ro q u e
n o s o t ro s h a lla m o s d e fin id o s ig u ie n d o la s in t a xis a rrib a m o s t ra d a . A co n t in u a ció n s e m u e s t ra u n e je m p lo d e d e fin ició n d e
u n a cla s e d e n o m b re Pe rs o n a q u e d is p o n e d e t re s ca m p o s :
class Persona
{
string Nombre; // Campo de cada objeto Persona que almacena su nombre
int Edad; // Campo de cada objeto Persona que almacena su edad
string NIF; // Campo de cada objeto Persona que almacena su NIF
}
Pa ra a cce d e r a u n ca m p o d e u n d e t e rm in a d o o b je t o s e u s a la s in t a xis :
<objeto>.<campo>
p.Edad = 20;
● Mé t o d o s : Un m é t o d o e s u n co n ju n t o d e in s t ru ccio n e s a la s q u e s e le s a s o cia u n n o m b re d e m o d o q u e
s i s e d e s e a e je cu t a rla s b a s t a re fe re n cia rla s a t ra vé s d e d ich o n o m b re e n ve z d e t e n e r q u e e s crib irla s .
De n t ro d e e s t a s in s t ru ccio n e s e s p o s ib le a cce d e r co n t o t a l lib e rt a d a la in fo rm a ció n a lm a ce n a d a e n lo s
ca m p o s p e rt e n e cie n t e s a la cla s e d e n t ro d e la q u e e l m é t o d o s e h a d e fin id o , p o r lo q u e co m o a l
p rin cip io d e l t e m a s e in d icó , lo s m é t o d o s p e rm it e n m a n ip u la r lo s d a t o s a lm a ce n a d o s e n lo s o b je t o s .
La s in t a xis q u e s e u s a e n C# p a ra d e fin ir lo s m é t o d o s e s la s ig u ie n t e :
class Persona
{
string Nombre; // Campo de cada objeto Persona que almacena su nombre
int Edad; // Campo de cada objeto Persona que almacena su edad
string NIF; // Campo de cada objeto Persona que almacena su NIF
void Cumpleaños() // Incrementa en uno de la edad del objeto Persona
{
Edad++;
}
}
<objeto>.<método>(<parámetros>)
p.Cumpleaños();
S i a d e m á s d e la ve rs ió n d e Cu m p le a ñ o s ( ) q u e n o re t o rn a n a d a h u b ie s e o t ra q u e re t o rn a s e u n int, ¿ có m o s a b ría
e n t o n ce s e l co m p ila d o r a cu á l lla m a r?
string s = 12.ToString();
Cre a c ió n d e o b je t o s
Op e ra d o r n e w
new <nombreTipo>(<parametros>)
El co n s t ru ct o r re cib e e s e n o m b re d e b id o a q u e s u có d ig o s u e le u s a rs e p re cis a m e n t e p a ra co n s t ru ir e l o b je t o , p a ra
in icia liza r s u s m ie m b ro s . Po r e je m p lo , a n u e s t ra cla s e d e e je m p lo Pe rs o n a le p o d ría m o s a ñ a d ir u n co n s t ru ct o r d e já n d o la
a s í:
class Persona
{
string Nombre; // Campo de cada objeto Persona que almacena su nombre
int Edad; // Campo de cada objeto Persona que almacena su edad
string NIF; // Campo de cada objeto Persona que almacena su NIF
Co m o s e ve e n e l có d ig o , e l co n s t ru ct o r t o m a co m o p a rá m e t ro s lo s va lo re s co n lo s q u e d e s e e m o s in icia liza r e l o b je t o a
cre a r. Gra cia s a é l, p o d e m o s cre a r u n o b je t o Persona d e n o m b re Jo s é , d e 2 2 a ñ o s d e e d a d y NIF 1 2 3 4 4 3 2 1 - A a s í:
Nó t e s e q u e la fo rm a e n q u e s e p a s a n p a rá m e t ro s a l co n s t ru ct o r co n s is t e e n in d ica r lo s va lo re s q u e s e h a d e d a r a ca d a
u n o d e lo s p a rá m e t ro s in d ica d o s e n la d e fin ició n d e l m is m o s e p a rá n d o lo s p o r co m a s . Ob via m e n t e , s i u n p a rá m e t ro s e
d e fin ió co m o d e t ip o string h a b rá q u e p a s a rle u n a ca d e n a , s i s e d e fin ió d e t ip o int h a b rá q u e p a s a rle u n e n t e ro y, e n
g e n e ra l, h a t o d o p a rá m e t ro h a b rá q u e p a s a rle u n va lo r d e s u m is m o t ip o ( o d e a lg u n o co n ve rt ib le a l m is m o ) ,
p ro d u cié n d o s e u n e rro r a l co m p ila r s i n o s e h a ce a s í.
cre a r u n a va ria b le d e t ip o Persona lla m a d a p y có m o a lm a ce n a r e n e lla la d ire cció n d e l o b je t o q u e d e vo lve ría la a n t e rio r
a p lica ció n d e l o p e ra d o r n e w :
Co n s t ru c t o r p o r d e fe c t o
<nombreTipo>()
{
}
Re fe re n c ia a l o b je t o a c t u a l c o n t h is
De n t ro d e l có d ig o d e cu a lq u ie r m é t o d o d e u n o b je t o s ie m p re e s p o s ib le h a ce r re fe re n cia a l p ro p io o b je t o u s a n d o la p a la b ra
re s e rva d a this. Es t o p u e d e ve n ir b ie n a la h o ra d e e s crib ir co n s t ru ct o re s d e o b je t o s d e b id o a q u e p e rm it e q u e lo s
n o m b re s q u e d e m o s a lo s p a rá m e t ro s d e l co n s t ru ct o r p u e d a n co in cid ir n o m b re s d e lo s ca m p o s d e l o b je t o s in q u e h a ya
n in g ú n p ro b le m a . Po r e je m p lo , e l co n s t ru ct o r d e la cla s e Pe rs o n a e s crit o a n t e rio rm e n t e s e p u e d e re e s crib ir a s í u s a n d o
this:
He re n c ia y m é t o d o s v irt u a le s
Co n c e p t o d e h e re n c ia
class <nombreHija>:<nombrePadre>
{
<miembrosHija>
}
class Trabajador:Persona
{
public int Sueldo;
: base(<parametrosBase>)
using System;
class Persona
{
public string Nombre; // Campo de cada objeto Persona que almacena su nombre
public int Edad; // Campo de cada objeto Persona que almacena su edad
public string NIF; // Campo de cada objeto Persona que almacena su NIF
public Persona (string nombre, int edad, string nif) // Constructor de Persona
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
}
Console.WriteLine ("Nombre="+p.Nombre);
Console.WriteLine ("Edad="+p.Edad);
Console.WriteLine ("NIF="+p.NIF);
Console.WriteLine ("Sueldo="+p.Sueldo);
}
}
Lla m a d a s p o r d e fe c t o a l c o n s t ru c t o r b a s e
<nombreClase>(): base()
{}
Mé t o d o s v irt u a le s
using System;
class Persona
{
public string Nombre; // Campo de cada objeto Persona que almacena su nombre
public int Edad; // Campo de cada objeto Persona que almacena su edad
public string NIF; // Campo de cada objeto Persona que almacena su NIF
public virtual void Cumpleaños() // Incrementa en uno de la edad del objeto Persona
{
Console.WriteLine("Incrementada edad de persona");
}
public Persona (string nombre, int edad, string nif) // Constructor de Persona
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
}
Trabajador(string nombre, int edad, string nif, int sueldo): base(nombre, edad, nif)
{ // Inicializamos cada Trabajador en base al constructor de Persona
Sueldo = sueldo;
}
t.Cumpleaños();
p.Cumpleaños();
}
}
Cla s e s a b s t ra c t a s
La s cla s e s A y B d e l e je m p lo s o n a b s t ra ct a s , y co m o p u e d e ve rs e e s p o s ib le co m b in a r e n cu a lq u ie r o rd e n e l m o d ifica d o r
La c la s e p rim ig e n ia : S y s t e m . Ob je c t
A co n t in u a ció n va m o s a e xp lica r cu á le s s o n e s t o s m é t o d o s co m u n e s a t o d o s lo s o b je t o s :
La im p le m e n t a ció n q u e p o r d e fe ct o s e h a d a d o a e s t e m é t o d o co n s is t e e n u s a r ig u a ld a d p o r re fe re n cia p a ra lo s t ip o s
p o r re fe re n cia e ig u a ld a d p o r va lo r p a ra lo s t ip o s p o r va lo r. Es d e cir, s i lo s o b je t o s a co m p a ra r s o n d e t ip o s p o r
re fe re n cia s ó lo s e d e vu e lve true s i a m b o s o b je t o s a p u n t a n a la m is m a re fe re n cia e n m e m o ria d in á m ica , y s i lo s
t ip o s a co m p a ra r s o n t ip o s p o r va lo r s ó lo s e d e vu e lve true s i t o d o s lo s b it s d e a m b o s o b je t o s s o n ig u a le s , a u n q u e
s e a lm a ce n e n e n p o s icio n e s d ife re n t e s d e m e m o ria .
d e vo lve r true.
❍ S im e t ría : Ha d e d a r ig u a l e l o rd e n e n q u e s e h a g a la co m p a ra ció n . Es d e cir, x.Equals(y) h a d e
d e vo lve r lo m is m o q u e y.Equals(x) .
❍ Tra n s it iv id a d : S i d o s o b je t o s s o n ig u a le s y u n o d e e llo s e s ig u a l a o t ro , e n t o n ce s e l p rim e ro
t a m b ié n h a d e s e r ig u a l a e s e o t ro o b je t o . Es d e cir, s i x.Equals(y) e y.Equals(z) e n t o n ce s
x.Equals(z) .
❍ Co n s is t e n c ia : S ie m p re q u e e l m é t o d o s e a p liq u e s o b re lo s m is m o s o b je t o s h a d e d e vo lve r e l
m is m o re s u lt a d o .
❍ Tra t a m ie n t o d e o b je t o s n u lo s : S i u n o d e lo s o b je t o s co m p a ra d o s e s n u lo ( n u ll) , s ó lo s e h a d e
d e vo lve r t ru e s i e l o t ro t a m b ié n lo e s .
❍ Ha y q u e re ca lca r q u e e l h e ch o d e q u e re d e fin ir Equals() n o im p lica q u e e l o p e ra d o r d e ig u a ld a d
( ==) q u e d e t a m b ié n re d e fin id o . Ello h a b ría q u e h a ce rlo d e in d e p e n d ie n t e m e n t e co m o s e in d ica e n
e l Te m a 1 1 : Re d e fin ició n d e o p e ra d o re s .
En t a n t o q u e la b ú s q u e d a d e o b je t o s e n t a b la s d e d is p e rs ió n n o s e re a liza ú n ica m e n t e u s a n d o la ig u a ld a d d e o b je t o s
( m é t o d o Equals()) s in o u s a n d o t a m b ié n la ig u a ld a d d e có d ig o s d e d is p e rs ió n , s u e le s e r co n ve n ie n t e re d e fin ir
GetHashCode() s ie m p re q u e s e re d e fin a Equals() De h e ch o , s i n o s e h a ce e l co m p ila d o r in fo rm a d e la s it u a ció n
co n u n m e n s a je d e a vis o .
La im p le m e n t a ció n p o r d e fe ct o d e e s t e m é t o d o s im p le m e n t e d e vu e lve u n a ca d e n a d e t e xt o co n e l n o m b re d e la
cla s e a la q u e p e rt e n e ce e l o b je t o s o b re e l q u e e s a p lica d o . S in e m b a rg o , co m o lo h a b it u a l s u e le s e r im p le m e n t a r
ToString() e n ca d a n u e va cla s e q u e s e d e fin a , a co n t in u a ció n m o s t ra re m o s u n e je m p lo d e có m o re d e fin irlo e n la
cla s e Persona p a ra q u e m u e s t re lo s va lo re s d e t o d o s lo s ca m p o s d e lo s o b je t o s Persona:
return cadena;
}
Es d e re s e ñ a r e l h e ch o d e q u e e n re a lid a d lo s q u e h a ce e l o p e ra d o r d e co n ca t e n a ció n d e ca d e n a s ( +) p a ra
co n ca t e n a r u n a ca d e n a co n u n o b je t o cu a lq u ie ra e s co n ve rt irlo p rim e ro e n ca d e n a lla m a n d o a s u m é t o d o
ToString() y lu e g o re a liza r la co n ca t e n a ció n d e a m b a s ca d e n a s .
De l m is m o m o d o , cu a n d o a Console.WriteLine() y Console.Write() s e le s p a s a co m o p a rá m e t ro u n o b je t o
lo q u e h a ce n e s m o s t ra r p o r la s a lid a e s t á n d a r e l re s u lt a d o d e co n ve rt irlo e n ca d e n a lla m a n d o a s u m é t o d o
ToString(); y s i s e le s p a s a co m o p a rá m e t ro s u n a ca d e n a s e g u id a d e va rio s o b je t o s lo m u e s t ra n p o r la s a lid a
e s t á n d a r e s a ca d e n a p e ro s u s t it u ye n d o e n e lla t o d a s u b ca d e n a d e la fo rm a { <número>} p o r e l re s u lt a d o d e
co n ve rt ir e n ca d e n a e l p a rá m e t ro q u e o cu p e la p o s ició n <número>+2 e n la lis t a d e va lo re s d e lla m a d a a l m é t o d o .
S i lo q u e in t e re s a e s d is p o n e r d e u n a co p ia m á s n o rm a l, e n la q u e p o r ca d a o b je t o re fe re n cia d o s e cre a s e u n a co p ia
d e l m is m o a la q u e re fe re n cia s e e l o b je t o clo n a d o , e n t o n ce s e l p ro g ra m a d o r h a d e e s crib ir s u p ro p io m é t o d o
True
True
False
False
P o lim o rfis m o
Co n c e p t o d e p o lim o rfis m o
using System;
class Persona
{
public string Nombre; // Campo de cada objeto Persona que almacena su nombre
public int Edad; // Campo de cada objeto Persona que almacena su edad
public string NIF; // Campo de cada objeto Persona que almacena su NIF
// Constructor de Persona
public Persona (string nombre, int edad, string nif)
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
p.Cumpleaños();
// p.Sueldo++; //ERROR: Sueldo no es miembro de Persona
}
}
Mé t o d o s g e n é ric o s
D e t e rm in a c ió n d e t ip o . Op e ra d o r is
<expresión> is <nombreTipo>
Ac c e s o a la c la s e b a s e
using System;
class A
{
public virtual void F()
{
Console.WriteLine("A");
}
}
class B:A
{
public override void F()
{
Console.WriteLine("Antes");
Antes
A
Después
A la h o ra d e re d e fin ir m é t o d o s a b s t ra ct o s h a y q u e t e n e r cu id a d o co n u n a co s a : d e s d e e l m é t o d o re d e fin id o r n o e s p o s ib le
u s a r base p a ra h a ce r re fe re n cia a m é t o d o s a b s t ra ct o s d e la cla s e p a d re , a u n q u e s í p a ra h a ce r re fe re n cia a lo s n o
a b s t ra ct o s . Po r e je m p lo :
abstract class A
{
public abstract void F();
public void G()
{}
}
class B: A
{
public override void F()
{
base.G(); // Correcto
base.F(); // Error, base.F() es abstracto
}
}
D o w n c a s t in g
( p o r e je m p lo , co n e l o p e ra d o r is) p o d a m o s t ra t a rlo co m o t a l. En e s t o s ca s o s lo q u e h a y e s q u e h a ce r u n a co n ve rs ió n d e l
t ip o p a d re a l ve rd a d e ro t ip o d e l o b je t o , y a e s t o s e le lla m a d o w n c a s t in g
(<tipoDestino>) <expresiónAConvertir>
El re s u lt a d o d e e s t e t ip o d e e xp re s ió n e s e l o b je t o re s u lt a n t e d e co n ve rt ir e l re s u lt a d o d e <expresiónAConvertir> a
<tipoDestino>. En ca s o d e q u e la co n ve rs ió n n o s e p u d ie s e re a liza r s e la n za ría u n a e xce p ció n d e l t ip o p re d e fin id o
System.InvalidCastException
Ot ra fo rm a d e re a liza r e l d o wn ca s t in g e s u s a n d o e l o p e ra d o r as, q u e s e u s a a s í:
<expresiónAConvertir> as <tipoDestino>
Cla s e s y m é t o d o s s e lla d o s
class A
{
public abstract F();
}
class B:A
{
public sealed override F() // F() deja de ser redefinible
{}
}
Oc u lt a c ió n d e m ie m b ro s
class Padre
{
public void F()
{}
}
class Hija:Padre
{
public int F()
{return 1;}
}
class Padre
{
public void F()
{}
}
class Hija:Padre
{
new public int F()
{return 1;}
}
using System;
class Persona
{
public string Nombre; // Campo de cada objeto Persona que almacena su nombre
public int Edad; // Campo de cada objeto Persona que almacena su edad
public string NIF; // Campo de cada objeto Persona que almacena su NIF
// Constructor de Persona
public Persona (string nombre, int edad, string nif)
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
public Cumpleaños()
{
Edad++;
Console.WriteLine("Incrementada edad de trabajador");
}
p.Cumpleaños();
// p.Sueldo++; //ERROR: Sueldo no es miembro de Persona
}
}
using System;
class A
{
public virtual void F() { Console.WriteLine("A.F"); }
}
class B: A
{
public override void F() { Console.WriteLine("B.F"); }
}
class C: B
{
new public virtual void F() { Console.WriteLine("C.F"); }
}
class D: C
{
public override void F() { Console.WriteLine("D.F"); }
}
class Ocultación
{
public static void Main()
{
A a = new D();
B b = new D();
C c = new D();
D d = new D();
a.F();
b.F();
c.F();
d.F();
}
}
La s a lid a p o r p a n t a lla d e e s t e p ro g ra m a e s :
B.F
B.F
D.F
D.F
Un t ru co n e m o t é cn ico q u e p u e d e s e r ú t il p a ra d e t e rm in a r a q u é ve rs ió n d e l m é t o d o s e lla m a rá e n ca s o s co m p le jo s co m o e l
a n t e rio r co n s is t e e n co n s id e ra r q u e e l m e ca n is m o d e p o lim o rfis m o fu n cio n a co m o s i b u s ca s e e l ve rd a d e ro t ip o d e l o b je t o a
cu yo m é t o d o s e lla m a d e s ce n d ie n d o e n la je ra rq u ía d e t ip o s d e s d e e l t ip o d e la va ria b le s o b re la q u e s e a p lica e l m é t o d o y
d e m a n e ra q u e s i d u ra n t e d ich o re co rrid o s e lle g a a a lg u n a ve rs ió n d e l m é t o d o co n new s e p a ra la b ú s q u e d a y s e q u e d a
co n la ve rs ió n d e l m is m o in clu id a e n e l t ip o re co rrid o ju s t o a n t e s d e l q u e t e n ía e l m é t o d o o cu lt a d o r.
using System;
class A
{
public virtual void F() // F() es un método redefinible
{
Console.WriteLine("F() de A");
}
}
class B: A
{
new private void F() {} // Oculta la versión de F() de A sólo dentro de B
}
class C: B
{
public override void F() // Válido, pues aquí sólo se ve el F() de A
{
base.F();
Console.WriteLine("F() de B");
}
La s a lid a d e e s t e p ro g ra m a p o r p a n t a lla s e rá :
F() de A
F() de B
● Qu e p o r s u s n o m b re s lo s n u e vo s m ie m b ro s d e la cla s e p a d re e n t re e n co n flict o s co n lo s a ñ a d id o s a la
cla s e h ija cu a n d o n o e xis it ía n . Po r e je m p lo , s i la ve rs ió n in icia l d e d e la cla s e p a d re n o co n t ie n e n in g ú n
m é t o d o d e n o m b re F(), a la cla s e h ija s e le a ñ a d e vo id F() y lu e g o e n la n u e va ve rs ió n d e la cla s e
p a d re s e in co rp o ra d o in t F(), s e p ro d u cirá u n e rro r p o r t e n e rs e e n la cla s e h ija d o s m é t o d o s F()
● Qu e lo s n u e vo s m ie m b ro s t e n g a n lo s m is m o s n o m b re s y t ip o s d e p a rá m e t ro s q u e lo s in clu id o s e n la s
Ot ra p o s ib ilid a d s e ría s e lla r e l m é t o d o e n la cla s e h ija , p e ro e llo re co rt a la ca p a cid a d d e re u t iliza ció n d e d ich a cla s e y
s ó lo t ie n e s e n t id o s i n o fu e re d e fin id o e n n in g u n a s u b cla s e s u ya .
Mie m b ro s d e t ip o
class A
{
int x;
static int y;
}
Lo s o b je t o s d e cla s e A s ó lo va n a d is p o n e r d e l ca m p o x, m ie n t ra s q u e e l ca m p o y va a p e rt e n e ce r a la cla s e A. Po r e s t a
ra zó n s e d ice q u e lo s m ie m b ro s co n m o d ifica d o r static s o n m ie m b ro s d e t ip o y q u e lo s n o lo t ie n e n s o n m ie m b ro s d e
o b je t o .
A.y = 2;
int x;
static void Incrementa()
{
x++; //ERROR: x es miembro de objeto e Incrementa() lo es de clase.
}
En c a p s u la c ió n
a lo s d is e ñ a d o re s d e t ip o s d e d a t o s d e t e rm in a r q u é m ie m b ro s d e lo s t ip o s cre e n p u e d e n s e r u t iliza d o s p o r o t ro s
p ro g ra m a d o re s y cu á le s n o . La s p rin cip a le s ve n t a ja s q u e e llo a p o rt a s o n :
Po r d e fe ct o s e co n s id e ra q u e lo s m ie m b ro s d e u n t ip o d e d a t o s ó lo s o n a cce s ib le s d e s d e có d ig o s it u a d o d e n t ro d e la
d e fin ició n d e l m is m o , a u n q u e e s t o p u e d e ca m b ia rs e p re ce d ie n d o lo s d e u n o lo s s ig u ie n t e s m o d ifica d o re s ( a u n q u e a lg u n o s
d e e llo s ya s e h a n e xp lica d o a lo la rg o d e l t e m a , a q u í s e re co g e n t o d o s d e m a n e ra d e t a lla d a ) a l d e fin irlo s :
p u b lic : Pu e d e s e r a cce d id o d e s d e cu a lq u ie r có d ig o .
public class A
{
protected int x;
public class B: A
{
static void F(A a, B b, C c)
{
//a.x = 1; // Error, ha de accederse a traves de objetos tipo B o C
b.x = 1; // Ok
c.x = 1; // Ok
}
}
public class C: B
{
static void F(A a, B b, C c)
{
//a.x = 1; // Error, ha de accederse a traves de objetos tipo C
//b.x = 1; // Error, ha de accederse a traves de objetos tipo C
c.x = 1; // Ok
}
}
using System;
class A
{
protected int x=5;
}
class B:A
{
B()
{
Console.WriteLine("Heredado x={0} de clase A", x);
}
Co m o e s d e e s p e ra r, la s a lid a p o r p a n t a lla d e l p ro g ra m a d e e je m p lo s e rá :
Re s p e ct o a lo s t ip o s d e d a t o s , p o r d e fe ct o s e co n s id e ra q u e s o n a cce s ib le s s ó lo d e s d e e l m is m o e n s a m b la d o e n q u e h a s id o
d e fin id o s , a u n q u e t a m b ié n e s p o s ib le m o d ifica r e s t a co n s id e ra ció n a n t e p o n ie n d o u n o d e lo s s ig u ie n t e s m o d ifica d o re s a s u
d e fin ició n :
Ta m b ié n p u e d e n d e fin irs e t ip o s d e n t ro d e o t ro s ( t ip o s in t e rn o s ) En e s e ca s o s e rá n co n s id e ra d o s m ie m b ro s d e l t ip o
co n t e n e d o r d e n t ro d e la q u e s e h a ya n d e fin id o , p o r lo q u e le s s e rá n a p lica b le s t o d o s lo s m o d ifica d o re s vá lid o s p a ra
m ie m b ro s y p o r d e fe ct o s e co n s id e ra rá q u e , co m o co n cu a lq u ie r m ie m b ro , s o n p riva d o s . Pa ra a cce d e r a e s t o s t ip o s d e s d e
có d ig o e xt e rn o a s u t ip o co n t e n e d o r ( ya s e a p a ra h e re d a r d e e llo s , cre a r o b je t o s s u yo s o a cce d e r a s u s m ie m b ro s
e s t á t ico s ) , a d e m á s d e n e ce s it a rs e lo s p e rm is o s d e a cce s o n e ce s a rio s s e g ú n e l m o d ifica d o r d e a cce s ib ilid a d a l d e fin irlo s ,
h a y q u e u s a r la n o t a ció n <nombreTipoContendera>.<nombreTipoInterno> co m o m u e s t ra e s t e e je m p lo :
Prin cip io Pá g in a
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● Te m a 6 : Es p a cio s d e n o m b re s
❍ Co n ce p t o d e e s p a cio d e n o m b re s
❍ De fin ició n d e e s p a cio s d e n o m b re s
❍ Im p o rt a ció n d e e s p a cio s d e n o m b re s
❍ Es p a cio d e n o m b re s d is t rib u id o s
Te m a 6 : Es p a c io s d e n o m b re s
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
Co n c e p t o d e e s p a c io d e n o m b re s
Po r o t ro la d o , lo s e s p a cio s d e n o m b re s t a m b ié n p e rm it e n p o d e r u s a r e n u n m is m o p ro g ra m a va ria s
cla s e s co n ig u a l n o m b re s i p e rt e n e ce n a e s p a cio s d ife re n t e s . La id e a e s q u e ca d a fa b rica n t e d e fin a
s u s t ip o s d e n t ro d e u n e s p a cio d e n o m b re s p ro p io p a ra q u e a s í n o h a ya n co n flict o s s i va rio s
fa b rica n t e s d e fin e n cla s e s co n e l m is m o n o m b re y s e q u ie re n u s a r a la ve z e n u n m is m o p ro g ra m a .
Ob via m e n t e p a ra q u e e s t o fu n cio n e n o h a n d e co in cid ir lo s n o m b re s lo s e s p a cio s d e ca d a fa b rica n t e ,
y u n a fo rm a d e co n s e g u irlo e s d á n d o le s e l n o m b re d e la e m p re s a fa b rica n t e , o s u n o m b re d e
d o m in io e n In t e rn e t , e t c.
D e fin ic ió n d e e s p a c io s d e n o m b re s
namespace <nombreEspacio>
{
<tipos>
}
namespace EspacioEjemplo
{
class ClaseEjemplo
{}
}
El ve rd a d e ro n o m b re d e u n a cla s e , a l q u e s e d e n o m in a n o m b re c o m p le t a m e n t e c a lific a d o , e s e l
n o m b re q u e le d e m o s a l d e cla ra rla p re fija d o p o r la co n ca t e n a ció n d e t o d o s lo s e s p a cio s d e n o m b re s
a lo s q u e p e rt e n e ce o rd e n a d o s d e l m á s e xt e rn o a l m á s in t e rn o y s e g u id o ca d a u n o d e e llo s p o r u n
p u n t o ( ca rá ct e r . ) Po r e je m p lo , e l ve rd a d e ro n o m b re d e la cla s e ClaseEjemplo a n t e s d e fin id a e s
EspacioEjemplo.ClaseEjemplo. S i n o d e fin im o s u n a cla s e d e n t ro d e u n a d e fin ició n d e e s p a cio
d e n o m b re s - co m o s e h a h e ch o e n lo s e je m p lo s d e t e m a s p re vio s - s e co n s id e ra q u e é s t a p e rt e n e ce
a l d e n o m in a d o e s p a c io d e n o m b re s g lo b a l y s u n o m b re co m p le t a m e n t e ca lifica d o co in cid irá co n
e l n o m b re q u e le d e m o s a l d e fin irla . .
namespace EspacioEjemplo
{
namespace EspacioEjemplo2
{
class ClaseEjemplo
{}
}
}
Ah o ra ClaseEjemplo t e n d rá EspacioEjemplo.EspacioEjemplo2.ClaseEjemplo co m o
n o m b re co m p le t a m e n t e ca lifica d o . En re a lid a d e s p o s ib le co m p a ct a r la s d e fin icio n e s d e e s p a cio s d e
n o m b re s a n id a d o s u s a n d o e s t a s in t a xis d e ca lifica ció n co m p le t a p a ra d a r e l n o m b re d e l e s p a cio d e
n o m b re s a d e fin ir. Es d e cir, e l ú lt im o e je m p lo e s e q u iva le n t e a :
namespace EspacioEjemplo.EspacioEjemplo2
{
class ClaseEjemplo
{}
}
I m p o rt a c ió n d e e s p a c io s d e n o m b re s
S e n t e n c ia u s in g
namespace EspacioEjemplo.EspacioEjemplo2
{
class ClaseEjemplo
{}
}
Co m o p u e d e re s u lt a r m u y p e s a d o t e n e r q u e e s crib ir n o m b re s t a n la rg o s e n ca d a re fe re n cia a t ip o s
a s í d e fin id o s , e n C# s e h a in clu id o u n m e ca n is m o d e im p o rt a ció n d e e s p a cio s d e n o m b re s q u e u s a
la s ig u ie n t e s in t a xis :
using <espacioNombres>;
using EspacioEjemplo.EspacioEjemplo2;
namespace EspacioEjemplo.EspacioEjemplo2
{
class ClaseEjemplo
{}
}
// (1)
class Principal // Pertenece al espacio de nombres global
{
public static void ()
{
// EspacioEjemplo.EspacioEjemplo2. está implícito
ClaseEjemplo c = new ClaseEjemplo();
}
}
namespace EspacioEjemplo.EspacioEjemplo2
{
class ClaseEjemplo
{}
}
namespace Principal
{
using EspacioEjemplo.EspacioEjemplo2;
namespace N1.N2
{
class A {}
class B {}
}
namespace N3
{
using N1.N2;
class A {}
class C: A {}
}
Es p e c ific a c ió n d e a lia s
using A;
using B;
using A;
using B;
using ClaseA = A.Clase;
namespace N1.N2
{
class A {}
}
namespace N3
{
using R1 = N1;
using R2 = N1.N2;
class B
{
N1.N2.A a; // Campo de nombre completamente calificado N1.N2.A
R1.N2.A b; // Campo de nombre completamente calificado N1.N2.A
R2.A c; // Campo de nombre completamente calificado N1.N2.A
}
}
namespace N1.N2 {}
namespace N3
{
using R1 = N1;
using R2 = N1.N2;
using R3 = R1.N2; // ERROR: No se puede definir R3 en función de R1
}
Es p a c io d e n o m b re s d is t rib u id o s
namespace A // (1)
{
class B1 {}
}
namespace A // (2)
{
class B2 {}
}
namespace A
{
class B1 {}
class B2 {}
}
namespace A
{
class ClaseA {}
}
namespace B
{
using A;
}
namespace B
{
// using A;
class Principal: ClaseA {}
}
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n
C#
En e s t a p á g in a :
● Te m a 7 : Va ria b le s y t ip o s d e d a t o s
❍ De fin ició n d e va ria b le s
❍ Tip o s d e d a t o s b á s ico s
❍ Ta b la s
❍ Ca d e n a s d e t e xt o
❍ Co n s t a n t e s
❍ Va ria b le s d e s ó lo le ct u ra
❍ Ord e n d e in icia liza ció n d e va ria b le s
Te m a 7 : Va ria b le s y t ip o s d e d a t o s
( C) 2 0 0 1 Jo s é An t o n io Go n zá le z S e co
D e fin ic ió n d e v a ria b le s
Un a v a ria b le p u e d e ve rs e s im p le m e n t e co m o u n a lm a cé n d e o b je t o s d e u n d e t e rm in a d o t ip o a l q u e s e le d a
u n cie rt o n o m b re . Po r t a n t o , p a ra d e fin ir u n a va ria b le s ó lo h a y q u e d e cir cu á l s e rá e l n o m b re q u e s e le d a rá y
cu á l s e rá e l t ip o d e d a t o s q u e p o d rá a lm a ce n a r, lo q u e s e h a ce co n la la s ig u ie n t e s in t a xis :
<tipoVariable> <nombreVariable>;
class A
{
int x, z;
int y;
Persona p;
p = new Persona("José", 22, "76543876-A");
Tip o s d e d a t o s b á s ic o s
System.Int32 a = 2;
int a = 2;
Ta b la 5 : Tip o s d e d a t o s b á s ico s
El va lo r q u e p o r d e fe ct o s e d a a lo s ca m p o s d e t ip o s b á s ico s co n s is t e e n p o n e r a ce ro t o d o e l á re a d e m e m o ria
q u e o cu p e n . Es t o s e t ra d u ce e n q u e lo s ca m p o s d e t ip o s b á s ico s n u m é rico s s e in icia liza n p o r d e fe ct o co n e l
va lo r 0 , lo s d e t ip o bool lo h a ce n co n false, lo s d e t ip o char co n '\ u 0 0 0 0 ', y lo s d e t ip o string y object
co n null.
Ah o ra q u e s a b e m o s cu á le s s o n lo s t ip o s b á s ico s , e s e l m o m e n t o d e co m e n t a r cu á le s s o n lo s s u fijo s q u e
a d m it e n lo s lit e ra le s n u m é rico s p a ra in d ica r a l co m p ila d o r cu á l e s e l t ip o q u e s e h a d e co n s id e ra r q u e t ie n e .
Po r e je m p lo , s i t e n e m o s e n u n a cla s e lo s m é t o d o s :
Ta b la 6 : S u fijo s d e lit e ra le s e n t e ro s
Ta b la 7 : S u fijo s d e lit e ra le s re a le s
Ta b la s
Ta b la s u n id im e n s io n a le s
<tipoDatos>[] <nombreTabla>;
Po r e je m p lo , u n a t a b la q u e p u e d a a lm a ce n a r o b je t o s d e t ip o int s e d e cla ra a s í:
int[] tabla;
Po r e je m p lo , u n a t a b la q u e p u e d a a lm a ce n a r 1 0 0 o b je t o s d e t ip o int s e d e cla ra a s í:
int[] tabla;
tabla = new int[100];
Ha d e e s p e cifica rs e t a n t o s <valores> co m o n ú m e ro d e e le m e n t o s s e d e s e e q u e t e n g a la t a b la , y s i s o n m á s
d e u n o s e h a n d e s e p a ra r e n t re s í m e d ia n t e co m a s ( ,) Nó t e s e q u e a h o ra n o e s n e ce s a rio in d ica r e l n ú m e ro d e
e le m e n t o s d e la t a b la ( a u n q u e p u e d e h a ce rs e ) s i s e d e s e a ) , p u e s e l co m p ila d o r p u e d e d e d u cirlo d e l n ú m e ro d e
va lo re s e s p e cifica d o s . Po r e je m p lo , p a ra d e cla ra r u n a t a b la d e cu a t ro e le m e n t o s d e t ip o int co n va lo re s
5 , 1 , 4 , 0 s e p o d ría h a ce r lo s ig u ie n t e :
int[] tabla = ;
Ta m b ié n p o d e m o s cre a r t a b la s cu yo t a m a ñ o s e p u e d a e s t a b le ce r d in á m ica m e n t e a p a rt ir d e l va lo r d e cu a lq u ie r
e xp re s ió n q u e p ro d u zca u n va lo r d e t ip o e n t e ro . Po r e je m p lo , p a ra cre a r u n a t a b la cu yo t a m a ñ o s e a e l va lo r
in d ica d o p o r u n a va ria b le d e t ip o int ( lu e g o s u va lo r s e rá d e t ip o e n t e ro ) s e h a ría :
int i = 5;
...
int[] tablaDinámica = new int[i];
tabla[0] = 5;
tabla[1]++; // Por defecto se inicializó a 0, luego
// ahora el valor de tabla[1] pasa a ser 1
tabla[2] = tabla[0] - tabla[1]; // tabla[2] pasa a
// valer 4, pues 5-4 = 1
// El contenido de la tabla será , pues
// tabla[3] se inicializó por defecto a 0.
va lo r d e l ca m p o d e s ó lo le ct u ra Length q u e e s t á a s o cia d o a t o d a t a b la y co n t ie n e e l n ú m e ro d e e le m e n t o s d e
la m is m a . Po r e je m p lo , p a ra a s ig n a r u n 7 a l ú lt im o e le m e n t o d e la t a b la a n t e rio r s e h a ría :
Ta b la s d e n t a d a s
Un a t a b la d e n t a d a n o e s m á s q u e u n a t a b la cu yo s e le m e n t o s s o n a s u ve z t a b la s , p u d ié n d o s e a s í a n id a r
cu a lq u ie r n ú m e ro d e t a b la s . Pa ra d e cla ra r t a b la s d e e s t e t ip o s e u s a u n a s in t a xis m u y s im ila r a la e xp lica d a
p a ra la s t a b la s u n id im e n s io n a le s s o lo q u e a h o ra s e in d ica n t a n t o s co rch e t e s co m o n ive l d e a n id a ció n s e d e s e e .
Po r e je m p lo , p a ra cre a r u n a t a b la d e t a b la s d e e le m e n t o s d e t ip o int fo rm a d a p o r d o s e le m e n t o s , u n o d e lo s
cu a le s fu e s e u n a t a b la d e e le m e n t o s d e t ip o int fo rm a d a p o r lo s e le m e n t o s d e va lo re s 1 , 2 y e l o t ro fu e s e u n a
t a b la d e e le m e n t o s d e t ip o int y va lo re s 3 , 4 , 5 , s e p u e d e h a ce r:
Es m á s , ig u a l q u e co m o s e vió co n la s t a b la s u n id im e n s io n a le s t a m b ié n e s vá lid o h a ce r:
S i n o q u is ié s e m o s in d ica r cu á le s s o n lo s e le m e n t o s d e la s t a b la s co m p o n e n t e s , e n t o n ce s t e n d ría m o s q u e
in d ica r a l m e n o s cu á l e s e l n ú m e ro d e e le m e n t o s q u e p o d rá n a lm a ce n a r ( s e in icia liza rá n co n va lo re s p o r
d e fe ct o ) q u e d a n d o :
S i n o q u e re m o s cre a r la s t a b la s co m p o n e n t e s e n e l m o m e n t o d e cre a r la t a b la d e n t a d a , e n t o n ce s t e n d re m o s
q u e in d ica r p o r lo m e n o s cu á l e s e l n ú m e ro d e t a b la s co m p o n e n t e s p o s ib le s ( ca d a u n a va ld ría null) , co n lo
q u e q u e d a ría :
Es im p o rt a n t e s e ñ a la r q u e n o e s p o s ib le e s p e cifica r t o d a s la s d im e n s io n e s d e u n a t a b la d e n t a d a e n s u
d e fin ició n s i n o s e in d ica e xp lícit a m e n t e e l va lo r in icia l d e é s t a s e n t re lla ve s . Es d e cir, e s t a d e cla ra ció n e s
in co rre ct a :
Es t o s e d e b e a q u e e l t a m a ñ o d e ca d a t a b la co m p o n e n t e p u e d e s e r d is t in t o y co n la s in t a xis a n t e rio r n o s e
p u e d e d e cir cu á l e s e l t a m a ñ o d e ca d a u n a . Un a o p ció n h u b ie s e s id o co n s id e ra r q u e e s 5 p a ra t o d a s co m o s e
h a ce e n Ja va , p e ro e llo n o s e h a im p le m e n t a d o e n C# y h a b ría q u e d e cla ra r la t a b la d e , p o r e je m p lo , e s t a
m a n e ra :
int[][] tablaDentada;
Ha y q u e p re cis a r q u e a u n q u e e n lo s e je m p lo s h a s t a a h o ra p re s e n t e s s e h a n e s crit o e je m p lo s b a s a d o s e n
t a b la s d e n t a d a s d e s ó lo d o s n ive le s d e a n id a ció n , t a m b ié n e s p o s ib le cre a r t a b la s d e n t a d a s d e cu a lq u ie r
n ú m e ro d e n ive le s d e a n id a ció n . Po r e je m p lo , p a ra u n a t a b la d e t a b la s d e t a b la s d e e n t e ro s d e 2 e le m e n t o s e n
la q u e e l p rim e ro fu e s e u n a t a b la d e n t a d a fo rm a d a p o r d o s t a b la s d e 5 e n t e ro s y e l s e g u n d o e le m e n t o fu e s e
u n a t a b la d e n t a d a fo rm a d a p o r u n a t a b la d e 4 e n t e ro s y o t ra d e 3 s e p o d ría d e fin ir a s í:
tablaDentada[1][0][3] = 10;
Ta b la s m u lt id im e n s io n a le s
Un a t a b la m u lt id im e n s io n a l e s u n a t a b la cu yo s e le m e n t o s s e e n cu e n t ra n o rg a n iza n d o u n a e s t ru ct u ra d e
va ria s d im e n s io n e s . Pa ra d e fin ir e s t e t ip o d e t a b la s s e u s a u n a s in t a xis s im ila r a la u s a d a p a ra d e cla ra r t a b la s
u n id im e n s io n a le s p e ro s e p a ra n d o la s d ife re n t e s d im e n s io n e s m e d ia n t e co m a s ( ,) Po r e je m p lo , u n a t a b la
m u lt id im e n s io n a l d e e le m e n t o s d e t ip o int q u e co n s t e d e 1 2 e le m e n t o s p u e d e t e n e r s u s e le m e n t o s
d is t rib u id o s e n d o s d im e n s io n e s fo rm a n d o u n a e s t ru ct u ra 3 x4 s im ila r a u n a m a t riz d e la fo rm a :
1 2 3 4
5 6 7 8
9 10 11 12
Es t a t a b la s e p o d ría d e cla ra r a s í:
int[,] tablaMultidimensional = {, , };
Ta m b ié n p o d e m o s n o e s p e cifica r n i s iq u ie ra e l n ú m e ro d e e le m e n t o s d e la t a b la d e e s t a fo rm a
( tablaMultidimensional co n t e n d ría a h o ra null) :
int[,] tablaMultidimensional;
Au n q u e lo s e je m p lo s d e t a b la s m u lt id im e n s io n a le s h a s t a a h o ra m o s t ra d o s s o n d e t a b la s d e d o s d im e n s io n e s ,
e n g e n e ra l t a m b ié n e s p o s ib le cre a r t a b la s d e cu a lq u ie r n ú m e ro d e d im e n s io n e s . Po r e je m p lo , u n a t a b la q u e
a lm a ce n e 2 4 e le m e n t o s d e t ip o int y va lo r 0 e n u n a e s t ru ct u ra t rid im e n s io n a l 3 x4 x2 s e d e cla ra ría a s í:
tablaMultidimensional[0,2,1]++;
Nó t e s e q u e t a n t o la s t a b la s d e n t a d a s co m o la s t a b la s m u lt id im e n s io n a le s p u e d e n s e r u t iliza d a s t a n t o p a ra
re p re s e n t a r e s t ru ct u ra s m a t ricia le s co m o p a ra , e n g e n e ra l, re p re s e n t a r cu a lq u ie r e s t ru ct u ra d e va ria s
d im e n s io n e s . La d ife re n cia e n t re a m b a s s o n :
● Co m o la s t a b la s d e n t a d a s s o n t a b la s d e t a b la s , ca d a u n o d e s u s e le m e n t o s p u e d e s e r u n a
t a b la d e u n t a m a ñ o d ife re n t e . As í, co n la s t a b la s d e n t a d a s p o d e m o s re p re s e n t a r m a t rice s e n
la s q u e ca d a co lu m n a t e n g a u n t a m a ñ o d is t in t o ( p o r e l a s p e ct o "a s e rra d o " d e e s t e t ip o d e
m a t rice s e s p o r lo q u e s e le s lla m a t a b la s d e n t a d a s ) , m ie n t ra s q u e u s a n d o t a b la s
m u lt id im e n s io n a le s s ó lo e s p o s ib le cre a r m a t rice s re ct a n g u la re s o cu a d ra d a s . La s
e s t ru ct u ra s a s e rra d a s p u e d e n s im u la rs e u s a n d o m a t rice s m u lt id im e n s io n a le s co n t o d a s s u s
co lu m n a s d e l t a m a ñ o d e la co lu m n a m á s g ra n d e n e ce s a ria , a u n q u e e llo im p lica d e s p e rd icia r
m u ch a m e m o ria s o b re t o d o s i lo s t a m a ñ o s d e ca d a co lu m n a s o n m u y d ife re n t e s y la t a b la e s
g ra n d e De t o d o s m o d o s , la s e s t ru ct u ra s m á s co m u n e s q u e s e u s a n e n la m a yo ría d e
a p lica cio n e s s u e le n s e r re ct a n g u la re s o cu a d ra d a s .
● Lo s t ie m p o s q u e s e t a rd a n e n cre a r y d e s t ru ir t a b la s d e n t a d a s s o n s u p e rio re s a lo s q u e s e
t a rd a n e n cre a r y d e s t ru ir t a b la s m u lt id im e n s io n a le s . Es t o s e d e b e a q u e la s p rim e ra s s o n
t a b la s d e t a b la s m ie n t ra s q u e la s s e g u n d a s s o n u n a ú n ica t a b la , Po r e je m p lo , p a ra cre a r u n a
t a b la d e n t a d a [ 1 0 0 ] [ 1 0 0 ] h a y q u e cre a r 1 0 1 t a b la s ( la t a b la d e n t a d a m á s la s 1 0 0 t a b la s q u e
co n t ie n e ) , m ie n t ra s q u e p a ra cre a r u n a cre a r u n a t a b la b id im e n s io n a l [ 1 0 0 , 1 0 0 ] h a y q u e
cre a r u n a ú n ica t a b la .
● La s t a b la s d e n t a d a s n o fo rm a n p a rt e d e l CLS , p o r lo q u e n o t o d o s lo s le n g u a je s g e s t io n a d o s
lo s t ie n e n p o rq u é a d m it ir. Po r e je m p lo Vis u a l Ba s ic. NET n o la s a d m it e , p o r lo q u e a l u s a rla s
e n m ie m b ro s p ú b lico s e q u iva le a p e rd e r in t e ro p e ra b ilid a d co n e s t o s le n g u a je s .
Ta b la s m ix t a s
Un a t a b la m ix t a e s s im p le m e n t e u n a t a b la fo rm a d a p o r t a b la s m u lt id im e n s io n a le s y d e n t a d a s co m b in a d a s
e n t re s í d e cu a lq u ie r m a n e ra . Pa ra d e cla ra r u n a t a b la d e e s t e t ip o b a s t a co n t a n s o lo co m b in a r la s n o t a cio n e s
ya vis t a s p a ra la s m u lt id im e n s io n a le s y d e n t a d a s . Po r e je m p lo , p a ra d e cla ra r u n a t a b la d e t a b la s
m u lt id im e n s io n a le s cu yo s e le m e n t o s s e a n t a b la s u n id im e n s io n a le s d e e n t e ro s s e h a ría lo s ig u ie n t e :
int[][,][] tablaMixta;
Co v a ria n z a d e t a b la s
La c la s e S y s t e m . Arra y
En re a lid a d , t o d a s la s t a b la s q u e d e fin a m o s , s e a cu a l s e a e l t ip o d e e le m e n t o s q u e co n t e n g a n , s o n o b je t o s q u e
d e riva n d e S y s t e m . Arra y . Es d e cir, va n a d is p o n e r d e t o d o s lo s m ie m b ro s q u e s e h a n d e fin id o p a ra e s t a
cla s e , e n t re lo s q u e s o n d e s t a ca b le s :
● Le n g t h : Ca m p o d e s ó lo le ct u ra q u e in fo rm a d e l n ú m e ro t o t a l d e e le m e n t o s q u e co n t ie n e la
t a b la . S i la t a b la t ie n e m á s d e u n a d im e n s ió n o n ive l d e a n id a ció n in d ica e l n ú m e ro d e
e le m e n t o s d e t o d a s s u s d im e n s io n e s y n ive le s . Po r e je m p lo :
int[] tabla = ;
int[][] tabla2 = {new int[] , new int[] };
int[,] tabla3 = {,};
Console.WriteLine(tabla.Length); //Imprime 4
Console.WriteLine(tabla2.Length); //Imprime 5
Console.WriteLine(tabla3.Length); //Imprime 6
● Ra n k : Ca m p o d e s ó lo le ct u ra q u e a lm a ce n a e l n ú m e ro d e d im e n s io n e s d e la t a b la .
Ob via m e n t e s i la t a b la n o e s m u lt id im e n s io n a l va ld rá 1 . Po r e je m p lo :
int[] tabla = ;
int[][] tabla2 = {new int[] , new int[] };
int[,] tabla3 = {,};
Console.WriteLine(tabla.Rank); //Imprime 1
Console.WriteLine(tabla2.Rank); //Imprime 1
Console.WriteLine(tabla3.Rank); //Imprime 2
● in t Ge t Le n g t h ( in t d im e n s ió n ) : Mé t o d o q u e d e vu e lve e l n ú m e ro d e e le m e n t o s d e la
d im e n s ió n e s p e cifica d a . La s d im e n s io n e s s e in d ica n e m p e za n d o a co n t a r d e s d e ce ro , p o r lo
q u e s i q u ie re o b t e n e rs e e l n ú m e ro d e e le m e n t o s d e la p rim e ra d im e n s ió n h a b rá q u e u s a r
Ge t Le n g t h ( 0 ) , s i s e q u ie re o b t e n e r lo s d e la s e g u n d a h a b rá q u e u s a r Ge t Le n g t h ( 1 ) , e t c. Po r
e je m p lo :
int[,] tabla = {, };
Console.WriteLine(tabla.GetLength(0)); // Imprime 2
Console.WriteLine(tabla.GetLength(1)); // Imprime 4
● v o id Co p y To ( Arra y d e s t in o , in t p o s ic ió n ) : Co p ia t o d o s lo s e le m e n t o s d e la t a b la s o b re la
q u e e s a p lica e n la q u e s e le p a s a co m o p rim e r p a rá m e t ro a p a rt ir d e la p o s ició n d e la
m is m a in d ica d a co m o s e g u n d o p a rá m e t ro . Po r e je m p lo :
int[] tabla1 = ;
int[] tabla2 = ;
Am b a s t a b la s h a n d e s e r u n id im e n s io n a le s . Po r o t ro la d o , y co m o e s o b vio , la t a b la d e d e s t in o h a d e s e r
d e u n t ip o q u e p u e d a a lm a ce n a r lo s o b je t o s d e la t a b la fu e n t e , e l ín d ice e s p e cifica d o h a d e s e r vá lid o
( m a yo r o ig u a l q u e ce ro y m e n o r q u e e l t a m a ñ o d e la t a b la d e d e s t in o ) y n o h a d e va le r null n in g u n a .
S i n o fu e s e a s í, s a lt a ría n e xce p cio n e s d e d ive rs o s t ip o s in fo rm a n d o d e l e rro r co m e t id o ( e n la
d o cu m e n t a ció n d e l S DK p u e d e ve r cu á le s s o n e n co n cre t o ) .
Ap a rt e d e lo s m ie m b ro s a q u í s e ñ a la d o s , d e System.Array cu e n t a co n m u ch o s m á s q u e p e rm it e n re a liza r
t a re a s t a n fre cu e n t e s co m o b ú s q u e d a s d e e le m e n t o s , o rd e n a cio n e s , e t c.
Ca d e n a s d e t e x t o
Un a c a d e n a d e t e x t o n o e s m á s q u e u n a s e cu e n cia d e ca ra ct e re s Un ico d e . En C# s e re p re s e n t a n m e d ia n t e
o b je t o s d e l t ip o t ip o d e d a t o lla m a d o string, q u e n o e s m á s q u e u n a lia s d e l t ip o System.String in clu id o
e n la BCL.
using System;
Console.WriteLine(cadena1==cadena2);
}
}
Console.WriteLine(Object.ReferecenceEquals(cadena1, cadena2));
Console.WriteLine( (object) cadena1 == (object) cadena2);
Ah o ra s í q u e lo q u e s e co m p a ra n s o n la s d ire ccio n e s d e lo s o b je t o s q u e re p re s e n t a n a la s ca d e n a s e n
m e m o ria , p o r lo q u e la s a lid a q u e s e m o s t ra rá p o r p a n t a lla e s :
False
False
using System;
Console.WriteLine(Object.ReferenceEquals(cadena1, cadena2));
Console.WriteLine( ((object) cadena1) == ((object) cadena2));
}
}
S i lo e je cu t a m o s ve re m o s q u e la s a lid a o b t e n id a e s ju s t a m e n t e la co n t ra ria :
True
True
Po r o t ro la d o , e l a cce s o a la s ca d e n a s s e h a ce d e m a n e ra s im ila r a co m o s i d e t a b la s d e ca ra ct e re s s e t ra t a s e :
s u "ca m p o " Length a lm a ce n a rá e l n ú m e ro d e ca ra ct e re s q u e la fo rm a n y p a ra a cce d e r a s u s e le m e n t o s s e
using System;
Console.WriteLine(cadena[0]);
Console.WriteLine(cadena[1]);
Console.WriteLine(cadena[2]);
Console.WriteLine(cadena[3]);
}
}
S in e m b a rg o , e l h e ch o d e q u e n o s e p u e d a n m o d ifica r la s ca d e n a s n o s ig n ifica q u e n o s e p u e d a n ca m b ia r lo s
o b je t o s a lm a ce n a d o s e n la s va ria b le s d e t ip o string. Po r e je m p lo , e l s ig u ie n t e có d ig o e s vá lid o :
using System.Text;
using System;
cadena[0] = 'V';
Console.WriteLine(cadena); // Muestra Velas
cadenaInmutable = cadena.ToString();
Console.WriteLine(cadenaInmutable); // Muestra Velas
}
}
Nó t e s e q u e e s u n m é t o d o m u y ú t il p a ra s a b e r s i u n a ca d e n a co n t ie n e o n o a lg u n a s u b ca d e n a
d e t e rm in a d a , p u e s s ó lo s i n o la e n cu e n t ra d e vu e lve u n - 1 .
Using System;
Console.WriteLine(cadena1);
Console.WriteLine(cadena2);
}
}
Hola
ola
Co n s t a n t e s
As í, e je m p lo s d e d e fin ició n d e co n s t a n t e s e s e l s ig u ie n t e :
De b id o a la n e ce s id a d d e q u e e l va lo r d a d o a u n a co n s t a n t e s e a p re cis a m e n t e co n s t a n t e , n o t ie n e m u ch o
s e n t id o cre a r co n s t a n t e s d e t ip o s d e d a t o s n o b á s ico s , p u e s a n o s e r q u e va lg a n null s u s va lo re s n o s e
p u e d e n d e t e rm in a r d u ra n t e la co m p ila ció n s in o ú n ica m e n t e t ra s la e je cu ció n d e s u co n s t ru ct o r. La ú n ica
e xce p ció n a e s t a re g la s o n lo s t ip o s e n u m e ra d o s , cu yo s va lo re s s e p u e d e n d e t e rm in a r a l co m p ila r co m o s e
e xp lica rá cu a n d o lo s ve a m o s e n e l Te m a 1 4 : En u m e ra cio n e s
Po r ú lt im o , h a y q u e t e n e r e n cu e n t a q u e u n a va ria b le s ó lo p u e d e s e r d e fin id a co m o co n s t a n t e s i s e e s u n a
va ria b le lo ca l o u n ca m p o , p e ro n o s i e s u n p a rá m e t ro .
Va ria b le s d e s ó lo le c t u ra
Da d o q u e h a y cie rt o s ca s o s e n lo s q u e re s u lt a in t e re s a n t e d is p o n e r d e la ca p a cid a d d e s ó lo le ct u ra q u e t ie n e n
la s co n s t a n t e s p e ro n o e s p o s ib le u s a rla s d e b id o a la s re s t riccio n e s q u e h a y im p u e s t a s s o b re s u u s o , e n C#
t a m b ié n s e d a la p o s ib ilid a d d e d e fin ir va ria b le s q u e s ó lo p u e d a n s e r le íd a s . Pa ra e llo s e u s a la s ig u ie n t e
s in t a xis :
● No t ie n e n p o rq u é a lm a ce n a r va lo re s co n s t a n t e s , s in o q u e e l va lo r q u e a lm a ce n e n p u e d e
ca lcu la rs e d u ra n t e la e je cu ció n d e la a p lica ció n .
namespace Programa1
{
public class Utilidad
{
public static readonly int X = 1;
}
}
namespace Programa2
{
class Test
{
public static void Main() {
System.Console.WriteLine(Programa1.Utilidad.X);
}
}
}
S in e m b a rg o , p e s e a la s ve n t a ja s q u e la s va ria b le s d e s ó lo le ct u ra o fre ce n re s p e ct o a la s co n s t a n t e s , t ie n e n
d o s in co n ve n ie n t e s re s p e ct o a é s t a s : s ó lo p u e d e n d e fin irs e co m o ca m p o s ( n o co m o va ria b le s lo ca le s ) y co n
e lla s n o e s p o s ib le re a liza r la s o p t im iza cio n e s d e có d ig o co m e n t a d a s p a ra la s co n s t a n t e s .
class ReferenciasCruzadas
{
static int a = b + 1;
static int b = a + 1;
a = 1, b = 2
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● Te m a 8 : Mé t o d o s
❍ Co n ce p t o d e m é t o d o
❍ De fin ició n d e m é t o d o s
❍ Lla m a d a a m é t o d o s
❍ Tip o s d e p a rá m e t ro s . S in t a xis d e d e fin ició n
❍ Mé t o d o s e xt e rn o s
❍ Co n s t ru ct o re s
❍ De s t ru ct o re s
Te m a 8 : Mé t o d o s
Co n c e p t o d e m é t o d o
Un m é t o d o e s u n co n ju n t o d e in s t ru ccio n e s a la s q u e s e le s d a u n d e t e rm in a d o n o m b re d e t a l
m a n e ra q u e s e a p o s ib le e je cu t a rla s e n cu a lq u ie r m o m e n t o s in t e n e rla s q u e re e s crib ir s in o u s a n d o
s ó lo s u n o m b re . A e s t a s in s t ru ccio n e s s e le s d e n o m in a c u e rp o d e l m é t o d o , y a s u e je cu ció n a t ra vé s
d e s u n o m b re s e le d e n o m in a lla m a d a a l m é t o d o .
Al co n ju n t o fo rm a d o p o r e l n o m b re d e u n m é t o d o y e l n ú m e ro y t ip o d e s u s p a rá m e t ro s s e le co n o ce
co m o s ig n a t u ra d e l m é t o d o . La s ig n a t u ra d e u n m é t o d o e s lo q u e ve rd a d e ra m e n t e lo id e n t ifica , d e
m o d o q u e e s p o s ib le d e fin ir e n u n m is m o t ip o va rio s m é t o d o s co n id é n t ico n o m b re s ie m p re y cu a n d o
t e n g a n d is t in t o s p a rá m e t ro s . Cu a n d o e s t o o cu rre s e d ice q u e e l m é t o d o q u e t ie n e e s e n o m b re e s t á
s o b re c a rg a d o .
D e fin ic ió n d e m é t o d o s
<tipoRetorno> <nombreMétodo>(<parámetros>)
{
<cuerpo>
}
Au n q u e e s p o s ib le e s crib ir m é t o d o s q u e n o t o m e n p a rá m e t ro s , s i u n m é t o d o lo s t o m a s e h a d e
in d ica r e n <parámetros> cu á l e s e l n o m b re y t ip o d e ca d a u n o d e e llo s , s e p a rá n d o lo s co n co m a s s i
s o n m á s d e u n o y s ig u ie n d o la s in t a xis q u e m á s a d e la n t e e n e s t e m is m o t e m a e s e xp lica .
El <cuerpo> d e l m é t o d o t a m b ié n e s o p cio n a l, p e ro s i e l m é t o d o re t o rn a a lg ú n t ip o d e o b je t o
e n t o n ce s h a d e in clu ir a l m e n o s u n a in s t ru cció n return q u e in d iq u e cu á l e s e l o b je t o a d e vo lve r.
A co n t in u a ció n s e m u e s t ra u n e je m p lo d e có m o d e fin ir u n m é t o d o d e n o m b re S a lu d a cu yo cu e rp o
co n s is t a e n e s crib ir e n la co n s o la e l m e n s a je "Ho la Mu n d o " y q u e d e vu e lva u n o b je t o int d e va lo r 1:
int Saluda()
{
Console.WriteLine("Hola Mundo");
return 1;
}
Lla m a d a a m é t o d o s
La fo rm a e n q u e s e p u e d e lla m a r a u n m é t o d o d e p e n d e d e l t ip o d e m é t o d o d e l q u e s e t ra t e . S i e s u n
m é t o d o d e o b je t o ( m é t o d o n o e s t á t ico ) s e h a d e u s a r la n o t a ció n :
<objeto>.<nombreMétodo>(<valoresParámetros>)
( re co rd e m o s q u e , d e b id o a la h e re n cia , e l t ip o d e l <objeto> p u e d e s e r u n s u b t ip o d e l t ip o d o n d e
re a lm e n t e s e h a ya d e fin id o e l m é t o d o ) ; p e ro s i d e s d e có d ig o d e a lg ú n m é t o d o d e u n o b je t o s e d e s e a
lla m a r a o t ro m é t o d o d e e s e m is m o o b je t o , e n t o n ce s s e h a d e d a r e l va lo r this a <objeto>.
En ca s o d e q u e s e a u n m é t o d o d e t ip o ( m é t o d o e s t á t ico ) , e n t o n e s s e h a d e u s a r:
<tipo>.<nombreMétodo>(<valoresParámetros>)
<nombreMétodo>(<valoresParámetros>)
El fo rm a t o e n q u e s e p a s e n lo s va lo re s a ca d a p a rá m e t ro e n <valoresParámetros> a a q u e llo s
m é t o d o s q u e t o m e n p a rá m e t ro s d e p e n d e d e l t ip o d e p a rá m e t ro q u e s e a . Es t o s e e xp lica e n e l
s ig u ie n t e a p a rt a d o .
Tip o s d e p a rá m e t ro s . S in t a x is d e d e fin ic ió n
La fo rm a e n q u e s e d e fin e ca d a p a rá m e t ro d e u n m é t o d o d e p e n d e d e l t ip o d e p a rá m e t ro d e l q u e s e
t ra t e . En C# s e a d m it e n cu a t ro t ip o s d e p a rá m e t ro s : p a rá m e t ro s d e e n t ra d a , p a rá m e t ro s d e s a lid a ,
p a rá m e t ro s p o r re fe re n cia y p a rá m e t ro s d e n ú m e ro in d e fin id o .
P a rá m e t ro s d e
Pa ra d e fin ir u n p a rá m e t ro d e e n t ra d a b a s t a in d ica r cu á l e l n o m b re q u e s e le d e s e a d a r y e l cu á l e s
t ip o d e d a t o q u e p o d rá a lm a ce n a r. Pa ra e llo s e s ig u e la s ig u ie n t e s in t a xis :
<tipoParámetro> <nombreParámetro>
Po r e je m p lo , e l s ig u ie n t e có d ig o d e fin e u n m é t o d o lla m a d o S u m a q u e t o m a d o s p a rá m e t ro s d e
e n t ra d a d e t ip o int lla m a d o s par1 y par2 y d e vu e lve u n int co n s u s u m a :
En la s lla m a d a s a m é t o d o s s e e xp re s a n lo s va lo re s q u e s e d e s e e n d a r a e s t e t ip o d e p a rá m e t ro s
in d ica n d o s im p le m e n t e e l va lo r d e s e a d o . Po r e je m p lo , p a ra lla m a r a l m é t o d o a n t e rio r co n lo s va lo re s
2 y 5 s e h a ría <objeto>.Suma(2,5), lo q u e d e vo lve ría e l va lo r 7 .
To d o e s t o s e re s u m e co n e l s ig u ie n t e e je m p lo :
using System;
class ParámetrosEntrada
{
public int a = 1;
G(obj1);
F(obj2);
Es t e p ro g ra m a m u e s t ra la s ig u ie n t e s a lid a p o r p a n t a lla :
0, 2
P a rá m e t ro s d e s a lid a
Cu a lq u ie r p a rá m e t ro d e s a lid a d e u n m é t o d o s ie m p re h a d e m o d ifica rs e d e n t ro d e l cu e rp o d e l m é t o d o
Nó t e s e q u e e s t e t ip o d e p a rá m e t ro s p e rm it e n d is e ñ a r m é t o d o s q u e d e vu e lva n m ú lt ip le s o b je t o s : u n
o b je t o s e d e vo lve ría co m o va lo r d e re t o rn o y lo s d e m á s s e d e vo lve ría n e s crib ie n d o s e n lo s
p a rá m e t ro s d e s a lid a .
Al lla m a r a u n m é t o d o q u e t o m e p a rá m e t ro s d e e s t e t ip o t a m b ié n s e h a p re ce d e r e l va lo r
e s p e cifica d o p a ra e s t o s p a rá m e t ro s d e l m o d ifica d o r o u t . Un a u t ilid a d d e e s t o e s fa cilit a r la le g ib ilid a d
d e la s lla m a d a s a m é t o d o s . Po r e je m p lo , d a d a u n a lla m a d a d e la fo rm a :
a.f(x, out z)
P a rá m e t ro s p o r re fe re n c ia
P a rá m e t ro s d e n ú m e ro in d e fin id o
C# p e rm it e d is e ñ a r m é t o d o s q u e p u e d a n t o m a r cu a lq u ie r n ú m e ro d e p a rá m e t ro s . Pa ra e llo h a y q u e
in d ica r co m o ú lt im o p a rá m e t ro d e l m é t o d o u n p a rá m e t ro d e a lg ú n t ip o d e t a b la u n id im e n s io n a l o
d e n t a d a p re ce d id o d e la p a la b ra re s e rva d a params. Po r e je m p lo :
El p rim e r e je m p lo d e m u e s t ra q u e e l n ú m e ro d e p a rá m e t ro s in d e fin id o s q u e s e p a s e n t a m b ié n p u e d e
s e r 0 . Po r s u p a rt e , lo s d o s ú lt im o s e je m p lo s s o n t o t a lm e n t e e q u iva le n t e s , p u e s p re cis a m e n t e la
u t ilid a d d e p a la b ra re s e rva d a params e s in d ica r q u e s e d e s e a q u e la cre a ció n d e la t a b la object[]
s e h a g a im p lícit a m e n t e .
S o b re c a rg a d e t ip o s d e p a rá m e t ro s
class Sobrecarga
{
public void f(int x)
{}
Nó t e s e q u e e s t a cla s e e s co rre ct a p o rq u e ca d a u n o d e s u s m é t o d o s t ie n e u n a s ig n a t u ra d is t in t a : e l
p a rá m e t ro e s d e e n t ra d a e n e l p rim e ro y d e s a lid a e n e l s e g u n d o .
class SobrecargaInválida
{
public void f(ref int x)
{}
{}
}
Mé t o d o s e x t e rn o s
Un m é t o d o e x t e rn o e s a q u é l cu ya im p le m e n t a ció n n o s e d a e n e l fich e ro fu e n t e e n q u e e s
d e cla ra d o . Es t o s m é t o d o s s e d e cla ra n p re ce d ie n d o s u d e cla ra ció n d e l m o d ifica d o r extern. Co m o s u
có d ig o s e d a e xt e rn a m e n t e , e n e l fu e n t e s e s u s t it u ye n la s lla ve s d o n d e d e b e ría e s crib irs e s u cu e rp o
p o r u n p u n t o y co m a ( ;) , q u e d a n d o u n a s in t a xis d e la fo rm a :
extern <nombreMétodo>(<parámetros>);
Lo q u e e l có d ig o d e l e je m p lo a n t e rio r h a ce e s s im p le m e n t e d e fin ir u n m é t o d o d e n o m b re
CopyFile() cu yo có d ig o s e co rre s p o n d a co n e l d e la fu n ció n CopyFile() d e l fich e ro ke rn e l3 2 . d ll
d e l API Win32. Es t e m é t o d o e s lla m a d o e n Main() p a ra co p ia r e l fich e ro d e n o m b re fu e n t e . d a t e n
o t ro d e n o m b re d e s t in o . d a t . Nó t e s e q u e d a d o q u e CopyFile() s e h a d e cla ra d o co m o static y s e
le lla m a d e s d e la m is m a cla s e d o n d e s e h a d e cla ra d o , n o e s n e ce s a rio p re ce d e rlo d e la n o t a ció n
<nombreClase>. p a ra lla m a rlo .
Co n s t ru c t o re s
Co n c e p t o d e c o n s t ru c t o re s
Lo s c o n s t ru c t o re s d e u n t ip o d e d a t o s s o n m é t o d o s e s p e cia le s q u e s e d e fin e n co m o m ie m b ro s d e
é s t e y q u e co n t ie n e n có d ig o a e je cu t a r ca d a ve z q u e s e cre e u n o b je t o d e e s e t ip o . És t e có d ig o s u e le
u s a rs e p a ra la b o re s d e in icia liza ció n d e lo s ca m p o s d e l o b je t o a cre a r, s o b re t o d o cu a n d o e l va lo r d e
é s t o s n o e s co n s t a n t e o in clu ye a ccio n e s m á s a llá d e u n a a s ig n a ció n d e va lo r ( a p e rt u ra s d e fich e ro s ,
a cce s o s a re d e s , e t c. )
Ha y q u e t e n e r e n cu e n t a q u e la e je cu ció n d e l co n s t ru ct o r s ie m p re s e re a liza d e s p u é s d e h a b e rs e
in icia liza d o t o d o s lo s ca m p o s d e l o b je t o , ya s e a co n lo s va lo re s in icia le s q u e s e h u b ie s e n e s p e cifica d o
e n s u d e fin ició n o d e já n d o lo s co n e l va lo r p o r d e fe ct o d e s u t ip o .
D e fin ic ió n d e c o n s t ru c t o re s
<modificadores> <nombreTipo>(<parámetros>)
{
<código>
}
Un co n s t ru ct o r n u n ca p u e d e d e vo lve r n in g ú n t ip o d e o b je t o p o rq u e , co m o ya s e h a vis t o , s ó lo s e u s a
ju n t o a l o p e ra d o r new, q u e d e vu e lve u n a re fe re n cia a l o b je t o re cié n cre a d o . Po r e llo , e s a b s u rd o q u e
d e vu e lva a lg ú n va lo r ya q u e n u n ca p o d ría s e r ca p t u ra d o e n t a n t o q u e new n u n ca lo d e vo lve ría . Po r
e s t a ra zó n e l co m p ila d o r co n s id e ra e rró n e o in d ica r a lg ú n t ip o d e re t o rn o e n s u d e fin ició n , in clu s o
a u n q u e s e in d iq u e void.
Lla m a d a a l c o n s t ru c t o r
new <llamadaConstructor>
Po r e je m p lo , e l s ig u ie n t e p ro g ra m a d e m u e s t ra có m o a l cre a rs e u n o b je t o s e e je cu t a n la s
in s t ru ccio n e s d e s u co n s t ru ct o r:
class Prueba
{
Prueba(int x)
{
System.Console.Write("Creado objeto Prueba con x={0}",x);
}
Lla m a d a s e n t re c o n s t ru c t o re s
Al ig u a l q u e o cu rre co n cu a lq u ie r o t ro m é t o d o , t a m b ié n e s p o s ib le s o b re ca rg a r lo s co n s t ru ct o re s . Es
d e cir, s e p u e d e n d e fin ir va rio s co n s t ru ct o re s s ie m p re y cu a n d o e s t o s t o m e n d ife re n t e s n ú m e ro s o
t ip o s d e p a rá m e t ro s . Ad e m á s , d e s d e e l có d ig o d e u n co n s t ru ct o r p u e d e lla m a rs e a o t ro s
co n s t ru ct o re s d e l m is m o t ip o d e d a t o a n t e s d e e je cu t a r la s in s t ru ccio n e s d e l cu e rp o d e l p rim e ro . Pa ra
e llo s e a ñ a d e u n in ic ia liz a d o r t h is a l co n s t ru ct o r, q u e e s e s t ru ct u ra q u e p re ce d e a la lla ve d e
a p e rt u ra d e s u cu e rp o t a l y co m o s e m u e s t ra e n e l s ig u ie n t e e je m p lo :
class A
{
int total;
Nó t e s e q u e la s o b re ca rg a d e co n s t ru ct o re s - y d e cu a lq u ie r m é t o d o e n g e n e ra l- e s u n b u e n m o d o d e
d e fin ir ve rs io n e s m á s co m p a ct a s d e m é t o d o s d e u s o fre cu e n t e e n la s q u e s e t o m e n va lo re s p o r
d e fe ct o p a ra p a rá m e t ro s d e o t ra s ve rs io n e s m e n o s co m p a ct a s d e l m is m o m é t o d o . La im p le m e n t a ció n
d e e s t a s ve rs io n e s co m p a ct a s co n s is t iría e n h a ce r u n a lla m a d a a la ve rs ió n m e n o s co m p a ct a d e l
m é t o d o e n la q u e s e le p a s e n e s o s va lo re s p o r d e fe ct o ( a t ra vé s d e l this e n e l ca s o d e lo s
co n s t ru ct o re s ) y s i a ca s o lu e g o ( y/ o a n t e s , s i n o e s u n co n s t ru ct o r) s e h a g a n la b o re s e s p e cífica s e n e l
cu e rp o d e l m é t o d o co m p a ct o .
class A
{
int total;
class B:A
{
B(int valor):base(valor,2)
{}
}
En a m b o s ca s o s , lo s va lo re s p a s a d o s co m o p a rá m e t ro s e n e l in icia liza d o r n o p u e d e n co n t e n e r
re fe re n cia s a ca m p o s d e l o b je t o q u e s e e s t é cre a n d o , ya q u e s e co n s id e ra q u e u n o b je t o n o e s t á
cre a d o h a s t a q u e n o s e e je cu t e s u co n s t ru ct o r y, p o r t a n t o , a l lla m a r a l in icia liza d o r a ú n n o e s t á
cre a d o . S in e m b a rg o , lo q u e s í p u e d e n in clu ir s o n re fe re n cia s a lo s p a rá m e t ro s co n lo s q u e s e lla m ó
a l co n s t ru ct o r. Po r e je m p lo , s e ría vá lid o h a ce r:
Co n s t ru c t o r p o r d e fe c t o
To d o t ip o d e d a t o s h a d e d is p o n e r d e a l m e n o s u n co n s t ru ct o r. Cu a n d o s e d e fin e u n t ip o s in
e s p e cifica r n in g u n o e l co m p ila d o r co n s id e ra q u e im p lícit a m e n t e s e h a d e fin id o u n o s in cu e rp o n i
p a rá m e t ro s d e la s ig u ie n t e fo rm a :
En e l ca s o d e q u e e l t ip o s e a u n a cla s e a b s t ra ct a , e n t o n ce s e l co n s t ru ct o r p o r d e fe ct o in t ro d u cid o e s
e l q u e s e m u e s t ra a co n t in u a ció n , ya q u e e l a n t e rio r n o s e ría vá lid o p o rq u e p e rm it iría cre a r o b je t o s
d e la cla s e a la q u e p e rt e n e ce :
class A
{
public A(int x)
{}
}
class B:A
{
public static void Main()
{
B b = new B(); // Error: No hay constructor base
}
}
Ta m b ié n e s im p o rt a n t e s e ñ a la r q u e a ú n e n e l ca s o d e q u e d e fin a m o s n u e s t ra s p ro p io s co n s t ru ct o re s ,
s i n o e s p e cifica m o s u n in icia liza d o r e l co m p ila d o r in t ro d u cirá p o r n o s o t ro s u n o d e la fo rm a :base()
Po r t a n t o , e n e s t o s ca s o s t a m b ié n h a y q u e a s e g u ra rs e d e q u e e l t ip o d o n d e s e h a ya d e fin id o e l
co n s t ru ct o r h e re d e d e o t ro q u e t e n g a u n co n s t ru ct o r s in p a rá m e t ro s n o p riva d o .
using System;
{
Console.WriteLine("Derivada.F()");
}
La s a lid a p o r p a n t a lla m o s t ra d a p o r e s t e p ro g ra m a a l e je cu t a rs e e s la s ig u ie n t e :
Constructor de Base
Derivada.F()
Constructor de Derivada
Nó t e s e q u e s e h a e je cu t a d o e l m é t o d o F() d e Derivada a n t e s q u e e l có d ig o d e l co n s t ru ct o r d e
d ich a cla s e , p o r lo q u e s i e s e m é t o d o m a n ip u la s e ca m p o s d e fin id o s e n De riva d a q u e s e in icia liza s e n a
t ra vé s d e co n s t ru ct o r, s e h a b ría a cce d id o a e llo s a n t e s d e in icia liza rlo s y e llo s e g u ra m e n t e p ro vo ca ría
e rro re s d e ca u s a s d ifícile s d e a ve rig u a r.
Co n s t ru c t o r d e t ip o
To d o t ip o p u e d e t e n e r o p cio n a lm e n t e u n c o n s t ru c t o r d e t ip o , q u e e s u n m é t o d o e s p e cia l q u e
fu n cio n a d e fo rm a s im ila r a lo s co n s t ru ct o re s o rd in a rio s s ó lo q u e p a ra lo q u e s e u s a e s p a ra in icia liza r
lo s ca m p o s static d e l t ip o d o n d e s e h a d e fin id o .
Ca d a t ip o d e d a t o s ó lo p u e d e t e n e r u n co n s t ru ct o r d e t ip o . És t e co n s t ru ct o r e s lla m a d o
a u t o m á t ica m e n t e p o r e l co m p ila d o r la p rim e ra ve z q u e s e a cce d e a l t ip o , ya s e a p a ra cre a r o b je t o s
d e l m is m o o p a ra a cce d e r a s u s ca m p o s e s t á t ico s . Es t a lla m a d a s e h a ce ju s t o d e s p u é s d e in icia liza r
lo s ca m p o s e s t á t ico s d e l t ip o co n lo s va lo re s in icia le s e s p e cifica d o s a l d e fin irlo s ( o , e n s u a u s e n cia ,
co n lo s va lo re s p o r d e fe ct o d e s u s t ip o s d e d a t o ) , p o r lo q u e e l p ro g ra m a d o r n o t ie n e fo rm a d e
co n t ro la r la fo rm a e n q u e s e le lla m a y, p o r t a n t o , n o p u e d e p a s a rle p a rá m e t ro s q u e co n d icio n e n s u
e je cu ció n .
Co m o ca d a t ip o s ó lo p u e d e t e n e r u n co n s t ru ct o r d e t ip o n o t ie n e s e n t id o p o d e rs e u s a r this e n s u
in icia liza d o r p a ra lla m a r a o t ro . Y a d e m á s , t a m p o co t ie n e s e n t id o u s a r base d e b id o a q u e é s t e
s ie m p re h a rá re fe re n cia a l co n s t ru ct o r d e t ip o s in p a rá m e t ro s d e s u cla s e b a s e . O s e a , u n
c o n s t ru c t o r d e t ip o n o p u e d e t e n e r in ic ia liz a d o r.
La fo rm a e n q u e s e d e fin e e l co n s t ru ct o r d e t ip o e s s im ila r a la d e lo s co n s t ru ct o re s n o rm a le s , s ó lo
q u e a h o ra la d e fin ició n h a d e ir p re fija d a d e l m o d ifica d o r static y n o p u e d e co n t a r co n p a rá m e t ro s
n i in icia liza d o r. O s e a , s e d e fin e d e la s ig u ie n t e m a n e ra :
static <nombreTipo>()
{
<código>
}
using System;
class A
{
public static X;
static A()
{
Console.WriteLine("Constructor de A");
X=1;
}
}
class B:A
{
static B()
{
Console.WriteLine("Constructor de B");
X=2;
}
Inicializada clase B
Inicializada clase A
2
D e s t ru c t o re s
La s in t a xis q u e s e u s a p a ra d e fin ir u n d e s t ru ct o r e s la s ig u ie n t e :
~<nombreTipo>()
{
<código>
}
Lo s d e s t ru ct o re s n o s e h e re d a n . S in e m b a rg o , p a ra a s e g u ra r q u e la ca d e n a d e lla m a d a s a
d e s t ru ct o re s fu n cio n e co rre ct a m e n t e s i n o in clu im o s n in g u n a d e fin ició n d e d e s t ru ct o r e n u n t ip o , e l
co m p ila d o r in t ro d u cirá e n e s o s ca s o s u n a p o r n o s o t ro s d e la s ig u ie n t e fo rm a :
~<nombreTipo>()
{}
using System;
class A
{
~A()
{
Console.WriteLine("Destruido objeto de clase A");
}
}
class B:A
{
~B()
{
Console.WriteLine("Destruido objeto de clase B");
}
public static void Main()
{
new B();
}
}
Nó t e s e q u e a u n q u e n o s e h a ya g u a rd a d o n in g u n a re fe re n cia a l o b je t o d e t ip o B cre a d o y p o r t a n t o
s e a in n a ce s ib le p a ra e l p ro g ra m a d o r, a l re co le ct o r d e b a s u ra n o le p a s a lo m is m o y s ie m p re t ie n e
a cce s o a lo s o b je t o s , a u n q u e s e a n in ú t ile s p a ra e l p ro g ra m a d o r.
using System;
~Base()
{
Console.WriteLine("Destructor de Base");
this.F();
}
}
{
Console.WriteLine("Destructor de Derivada");
}
Destructor de Derivada
Destructor de Base
Derivada.F()
Nó t e s e q u e u n a lla m a d a a u n m é t o d o virt u a l d e n t ro d e u n d e s t ru ct o r co m o la q u e s e h a ce e n e l
e je m p lo a n t e rio r p u e d e d a r lu g a r a e rro re s d ifícile s d e d e t e ct a r, p u e s cu a n d o s e lla m a a l m é t o d o
virt u a l ya s e h a d e s t ru id o la p a rt e d e l o b je t o co rre s p o n d ie n t e a l t ip o d o n d e s e d e fin ió e l m é t o d o
e je cu t a d o . As í, e n e l e je m p lo a n t e rio r s e h a e je cu t a d o Derivada.F() t ra s Derivada.~F(), p o r lo
q u e s i e n Derivada.F() s e u s a s e a lg ú n ca m p o d e s t ru id o e n Derivada.~F() p o d ría n p ro d u cirs e
e rro re s d ifícile s d e d e t e ct a r.
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● Te m a 9 : Pro p ie d a d e s
❍ Co n ce p t o d e p ro p ie d a d
❍ De fin ició n d e p ro p ie d a d e s
❍ Acce s o a p ro p ie d a d e s
❍ Im p le m e n t a ció n in t e rn a d e p ro p ie d a d e s
Te m a 9 : P ro p ie d a d e s
Co n c e p t o d e p ro p ie d a d
Un a p ro p ie d a d e s u n a m e zcla e n t re e l co n ce p t o d e ca m p o y e l co n ce p t o d e m é t o d o . Ext e rn a m e n t e
e s a cce d id a co m o s i d e u n ca m p o n o rm a l s e t ra t a s e , p e ro in t e rn a m e n t e e s p o s ib le a s o cia r có d ig o a
e je cu t a r e n ca d a a s ig n a ció n o le ct u ra d e s u va lo r. És t e có d ig o p u e d e u s a rs e p a ra co m p ro b a r q u e n o
s e a s ig n e n va lo re s in vá lid o s , p a ra ca lcu la r s u va lo r s ó lo a l s o licit a r s u le ct u ra , e t c.
Un a p ro p ie d a d n o a lm a ce n a d a t o s , s in o s ó lo s e u t iliza co m o s i lo s a lm a ce n a s e . En la p rá ct ica lo q u e
s e s u e le h a ce r e s crib ir co m o có d ig o a e je cu t a r cu a n d o s e le a s ig n e u n va lo r, có d ig o q u e co n t ro le
q u e e s e va lo r s e a co rre ct o y q u e lo a lm a ce n e e n u n ca m p o p riva d o s i lo e s ; y co m o có d ig o a
e je cu t a r cu a n d o s e le a s u va lo r, có d ig o q u e d e vu e lva e l va lo r a lm a ce n a d o e n e s e ca m p o p ú b lico . As í
s e s im u la q u e s e t ie n e u n ca m p o p ú b lico s in lo s in co n ve n ie n t e s q u e e s t o s p re s e n t a n p o r n o p o d e rs e
co n t ro la r e l a cce s o a e llo s .
D e fin ic ió n d e p ro p ie d a d e s
Pa ra d e fin ir u n a p ro p ie d a d s e u s a la s ig u ie n t e s in t a xis :
<códigoEscritura>
}
get
{
<códigoLectura>
}
}
using System;
abstract class A
{
public abstract int PropiedadEjemplo
{
set;
get;
}
}
class B:A
{
private int valor;
set
{
valor = value;
Console.WriteLine("Escrito {0} en PropiedadEjemplo", valor);
}
}
}
Nó t e s e q u e a u n q u e e n e l e je m p lo s e h a o p t a d o p o r a s o cia r u n ca m p o p riva d o va lo r a la p ro p ie d a d
Pro p ie d a d Eje m p lo , e n re a lid a d n a d a o b lig a a q u e e llo s e h a g a y e s p o s ib le d e fin ir p ro p ie d a d e s q u e
n o t e n g a ca m p o s a s o cia d o s . Es d e cir, u n a p ro p ie d a d n o s e t ie n e p o rq u é co rre s p o n d e r co n u n
a lm a cé n d e d a t o s .
Ac c e s o a p ro p ie d a d e s
La fo rm a d e a cce d e r a u n a p ro p ie d a d , ya s e a p a ra le ct u ra o e s crit u ra , e s e xa ct a m e n t e la m is m a q u e
la q u e s e u s a ría p a ra a cce d e r a u n ca m p o d e s u m is m o t ip o . Po r e je m p lo , s e p o d ría a cce d e r a la
p ro p ie d a d d e u n o b je t o d e la cla s e B d e l e je m p lo a n t e rio r co n :
Leído 0 de PropiedadEjemplo;
Escrito 1 en PropiedadEjemplo;
Nó t e s e q u e e n e l p rim e r m e n s a je s e m u e s t ra q u e e l va lo r le íd o e s 0 p o rq u e lo q u e d e vu e lve e l
b lo q u e get d e la p ro p ie d a d e s e l va lo r p o r d e fe ct o d e l ca m p o p riva d o va lo r, q u e co m o e s d e t ip o
int t ie n e co m o va lo r p o r d e fe ct o 0 .
I m p le m e n t a c ió n in t e rn a d e p ro p ie d a d e s
<tipoPropiedad> get_<nombrePropiedad>()
{ // Método en que se convierte el bloque get
<códigoLectura>
}
Es t o s e h a ce p a ra q u e d e s d e le n g u a je s q u e n o s o p o rt e n la s p ro p ie d a d e s s e p u e d a a cce d e r t a m b ié n
a e lla s . S i u n a p ro p ie d a d e s d e s ó lo le ct u ra s ó lo s e g e n e ra rá e l m é t o d o get_X(), y s i e s d e s ó lo
e s crit u ra s ó lo s e g e n e ra rá e l set_X() Ah o ra b ie n , e n cu a lq u ie r ca s o h a y q u e t e n e r cu id a d o co n n o
d e fin ir e n u n m is m o t ip o d e d a t o m é t o d o s co n s ig n a t u ra s co m o e s t a s s i s e va n a g e n e ra r
in t e rn a m e n t e d e b id o a la d e fin ició n d e u n a p ro p ie d a d , ya q u e e llo p ro vo ca ría u n e rro r d e d e fin ició n
m ú lt ip le d e m é t o d o .
Te n ie n d o e n cu e n t a la im p le m e n t a ció n in t e rn a d e la s p ro p ie d a d e s , e s fá cil ve r q u e e l ú lt im o e je m p lo
d e a cce s o a p ro p ie d a d e s e q u iva le n t e a :
B b = new B();
obj.set_PropiedadEjemplo(obj.get_Propiedad_Ejemplo()++);
Nó t e s e q u e d e la fo rm a e n q u e s e d e fin e n lo s m é t o d o s g e n e ra d o s p o r e l co m p ila d o r s e p u e d e
d e d u cir e l p o rq u é d e l h e ch o d e q u e e n e l b lo q u e s e t s e p u e d a a cce d e r a t ra vé s d e v a lu e a l va lo r
a s ig n a d o y d e q u e e l o b je t o d e vu e lt o p o r e l có d ig o d e u n b lo q u e g e t t e n g a q u e s e r d e l m is m o t ip o
d e d a t o q u e la p ro p ie d a d a la q u e p e rt e n e ce .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 1 0 : In d iza d o re s
❍ Co n ce p t o d e in d iza d o r
❍ De fin ició n d e in d iza d o r
❍ Acce s o a in d iza d o re s
❍ Im p le m e n t a ció n in t e rn a d e in d iza d o re s
Te m a 1 0 : I n d iz a d o re s
Co n c e p t o d e in d iz a d o r
D e fin ic ió n d e in d iz a d o r
<tipoIndizador> this[<índices>]
{
set
{
<códigoEscritura>
}
get
{
<códigoLectura>
}
}
● El n o m b re d a d o a u n in d iza d o r s ie m p re h a d e s e r t h is , p u e s ca re ce d e s e n t id o p o d e r d a rle
cu a lq u ie ra e n t a n t o q u e a u n in d iza d o r n o s e a cce d e p o r s u n o m b re s in o a p lica n d o e l o p e ra d o r [
] a u n o b je t o . Po r e llo , lo q u e d ife re n cia rá a u n o s in d iza d o re s d e o t ro s s e rá e l n ú m e ro y t ip o d e
s u s <índices>
using System;
public class A
{
public int this[int índice]
{
set
{
Console.WriteLine("Escrito {0} en posición {1}", value, índice);
}
get
{
Console.WriteLine("Leído 1 de posición {0}", índice);
return 1;
}
}
Ac c e s o a in d iz a d o re s
son:
I m p le m e n t a c ió n in t e rn a d e in d iz a d o re s
<tipoIndizador> get_Item(<índices>)
{
<códigoLectura>
}
Nu e va m e n t e , h a y q u e t e n e r cu id a d o co n la s ig n a t u ra d e lo s m é t o d o s q u e s e d e fin a n e n u n a cla s e ya q u e co m o la
d e a lg u n o co in cid a co n la g e n e ra d a a u t o m á t ica m e n t e p o r e l co m p ila d o r p a ra lo s in d iza d o re s s e p ro d u cirá u n e rro r
d e a m b ig ü e d a d .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● Te m a 1 1 : Re d e fin ició n d e o p e ra d o re s
❍ Co n ce p t o d e re d e fin ició n d e o p e ra d o r
❍ De fin ició n d e re d e fin icio n e s d e o p e ra d o re s
❍ Re d e fin icio n e s d e o p e ra d o re s d e co n ve rs ió n
Te m a 1 1 : Re d e fin ic ió n d e o p e ra d o re s
Co n c e p t o d e re d e fin ic ió n d e o p e ra d o r
Un o p e ra d o r e n C# n o e s m á s q u e u n s ím b o lo fo rm a d o p o r u n o o m á s ca ra ct e re s q u e p e rm it e re a liza r
u n a d e t e rm in a d a o p e ra ció n e n t re u n o o m á s d a t o s y p ro d u ce u n re s u lt a d o . En e l Te m a 4 : As p e ct o s
Lé x ico s ya h e m o s vis t o q u e C# cu e n t a co n u n b u e n n ú m e ro d e o p e ra d o re s q u e p e rm it e n re a liza r co n u n a
s in t a xis cla ra e in t u it iva la s o p e ra cio n e s co m u n e s a la m a yo ría d e le n g u a je s ( a rit m é t ica , ló g ica , e t c) a s í
co m o o t ra s o p e ra cio n e s m á s p a rt icu la re s d e C# ( o p e ra d o r is, o p e ra d o r stackalloc, e t c. )
S in e m b a rg o , e l có d ig o s e ría m u ch o m á s le g ib le e in t u it ivo s i e n ve z d e t e n e rs e q u e u s a r e l m é t o d o
Sumar() s e re d e fin ie s e e l s ig n ifica d o d e l o p e ra d o r + p a ra q u e a l a p lica rlo e n t re o b je t o s Complejo
d e vo lvie s e s u s u m a . Co n e llo , e l có d ig o a n t e rio r q u e d a ría a s í:
De t o d a s fo rm a s , s u e le s e r b u e n a id e a q u e ca d a ve z q u e s e re d e fin a u n o p e ra d o r e n u n t ip o d e d a t o
t a m b ié n s e d é u n a d e fin ició n d e u n m é t o d o q u e fu n cio n e d e fo rm a e q u iva le n t e a l o p e ra d o r. As í d e s d e
le n g u a je s q u e n o s o p o rt e n la re d e fin ició n d e o p e ra d o re s t a m b ié n p o d rá re a liza rs e la o p e ra ció n y e l t ip o
s e rá m á s re u t iliza b le .
D e fin ic ió n d e re d e fin ic io n e s d e o p e ra d o re s
S in t a x is g e n e ra l d e re d e fin ic ió n d e o p e ra d o r
La fo rm a e n q u e s e re d e fin e u n o p e ra d o r d e p e n d e d e l t ip o d e o p e ra d o r d e l q u e s e t ra t e , ya q u e n o e s lo
m is m o d e fin ir u n o p e ra d o r u n a rio q u e u n o b in a rio . S in e m b a rg o , co m o re g la g e n e ra l p o d e m o s co n s id e ra r
q u e s e d e fin ie n d o u n m é t o d o p ú b lico y e s t á t ico cu yo n o m b re s e a e l s ím b o lo d e l o p e ra d o r a re d e fin ir y
ve n g a p re ce d id o d e la p a la b ra re s e rva d a operator. Es d e cir, s e s ig u e u n a s in t a xis d e la fo rm a :
Al m e n o s u n o d e lo s o p e ra n d o s h a d e s e r d e l m is m o t ip o d e d a t o d e l q u e s e a m ie m b ro la re d e fin ició n d e l
o p e ra d o r. Co m o p u e d e d e d u cirs e , e llo im p lica q u e a u n q u e p u e d a n s o b re ca rg a rs e lo s o p e ra d o re s b in a rio s
n u n ca p o d rá h a ce rs e lo m is m o co n lo s b in a rio s ya q u e s u ú n ico p a rá m e t ro s ó lo p u e d e s e r d e u n ú n ico t ip o
( e l t ip o d e n t ro d e l q u e s e d e fin a ) Ad e m á s , e llo t a m b ié n p ro vo ca q u e n o p u e d e n re d e fin irs e la s
co n ve rs io n e s ya in clu id a s e n la BCL p o rq u e a l m e n o s u n o d e lo s o p e ra n d o s s ie m p re h a b rá d e s e r d e a lg ú n
n u e vo t ip o d e fin id o p o r e l u s u a rio .
class Complejo;
{
public float ParteReal;
public float ParteImaginaria;
using System;
class A
{
public static int operator +(A obj1, B obj2)
{
Console.WriteLine("Aplicado + de A");
return 1;
}
class B:A
{
public static int operator +(A obj1, B obj2)
{
Console.WriteLine("Aplicado + de B");
return 1;
}
Console.WriteLine("o1+o2={0}", o1+o2);
}
}
S in e m b a rg o , m á s q u e u n a o cu lt a ció n d e o p e ra d o re s lo q u e s e t ie n e e s u n p ro b le m a d e a m b ig ü e d a d e n la
d e fin ició n d e l o p e ra d o r + e n t re o b je t o s d e t ip o s A y B, d e la q u e s e in fo rm a rá a l co m p ila r ya q u e e l
co m p ila d o r n o s a b rá cu á l ve rs ió n d e l o p e ra d o r d e b e u s a r p a ra t ra d u cir o1+o2 a có d ig o b in a rio .
Re d e fin ic ió n d e o p e ra d o re s u n a rio s
Lo s o p e ra d o re s ++ y -- s ie m p re h a n d e re d e fin irs e d e m a n e ra q u e e l t ip o d e d a t o d e l o b je t o d e vu e lt o s e a
e l m is m o q u e e l t ip o d e d a t o d o n d e s e d e fin e n . Cu a n d o s e u s e n d e fo rm a p re fija s e d e vo lve rá e s e o b je t o ,
y cu a n d o s e u s e n d e fo rm a p o s t ifja e l co m p ila d o r lo q u e h a rá s e rá d e vo lve r e l o b je t o o rig in a l q u e s e le s
p a s ó co m o p a rá m e t ro e n lu g a r d e l in d ica d o e n e l return. Po r e llo e s im p o rt a n t e n o m o d ifica r d ich o
p a rá m e t ro s i e s d e u n t ip o re fe re n cia y q u e re m o s q u e e s t o s o p e ra d o re s t e n g a n s u s ig n ifica d o t ra d icio n a l.
Un e je m p lo d e có m o h a ce rlo e s la s ig u ie n t e re d e fin ició n d e ++ p a ra e l t ip o Co m p le jo :
return resultado;
}
Nó t e s e q u e s i h u b ié s e m o s re d e fin id o e l ++ d e e s t a o t ra fo rm a :
return op;
}
Re d e fin ic ió n d e o p e ra d o re s b in a rio s
Lo s o p e ra d o re s b in a rio s re d e fin ib le s s o n +, -, *, /, %, &, |, ^, <<, >>, ==, !=, >, <, >= y <= To d a
re d e fin ició n q u e s e h a g a d e e llo s h a d e t o m a r d o s p a rá m e t ro s t a le s q u e a l m e n o s u n o d e e llo s s e a d e l
m is m o t ip o q u e e l t ip o d e d a t o d e l q u e e s m ie m b ro la re d e fin ició n .
Ha y q u e t e n e r e n cu e n t a q u e a q u e llo s d e e s t o s o p e ra d o re s q u e t e n g a n co m p le m e n t a rio s ie m p re h a n d e
re d e fin irs e ju n t o co n é s t e . Es d e cir, s ie m p re q u e s e re d e fin a e n u n t ip o e l o p e ra d o r > t a m b ié n h a d e
re d e fin irs e e n é l e l o p e ra d o r <, s ie m p re q u e s e re d e fin a >= h a d e re d e fin irs e <=, y s ie m p re q u e s e re d e fin a
== h a d e re d e fin irs e !=.
Re d e fin ic io n e s d e o p e ra d o re s d e c o n v e rs ió n
En e l Te m a 4 : As p e ct o s Lé x ico s ya vim o s q u e p a ra co n ve rt ir o b je t o s d e u n t ip o d e d a t o e n o t ro s e p u e d e
u s a r u n o p e ra d o r d e co n ve rs ió n q u e t ie n e la s ig u ie n t e s in t a xis :
(<tipoDestino>) <expresión>
Lo q u e e s t e o p e ra d o r h a ce e s d e vo lve r e l o b je t o re s u lt a n t e d e co n ve rt ir a l t ip o d e d a t o d e n o m b re
<tipoDestino> e l o b je t o re s u lt a n t e d e e va lu a r <expresión> Pa ra q u e la co n ve rs ió n p u e d a a p lica rs e e s
p re cis o q u e e xis t a a lg u n a d e fin ició n d e có m o s e h a d e co n ve rt ir a <tipoDestino> lo s o b je t o s d e l t ip o
re s u lt a n t e d e e va lu a r <expresión> Es t o p u e d e in d ica rs e in t ro d u cie n d o co m o m ie m b ro d e l t ip o d e e s o s
o b je t o s o d e l t ip o <tipoDestino> u n a re d e fin ició n d e l o p e ra d o r d e co n ve rs ió n q u e in d iq u e có m o h a ce r la
co n ve rs ió n d e l t ip o d e l re s u lt a d o d e e va lu a r <expresión> a <tipoDestino>
La s re d e fin icio n e s d e o p e ra d o re s d e co n ve rs ió n p u e d e s e r d e d o s t ip o s :
Nó t e s e q u e e l t ip o d e l p a rá m e t ro u s a d o a l d e fin ir la co n ve rs ió n s e co rre s p o n d e co n e l t ip o d e d a t o d e l
o b je t o a l q u e s e p u e d e a p lica r la co n ve rs ió n ( t ip o o rig e n ) , m ie n t ra s q u e e l t ip o d e l va lo r d e vu e lt o s e rá e l
t ip o a l q u e s e re a lice la co n ve rs ió n ( t ip o d e s t in o ) Co n e s t a d e fin ició n p o d ría n e s crib irs e có d ig o s co m o e l
s ig u ie n t e :
Complejo c2 = 5; // c2 = 5 + 0i
Vé a s e q u e e n e s t e ca s o n u n ca s e p e rd e rá in fo rm a ció n y la co n ve rs ió n n u n ca fa lla rá , p o r lo q u e e s
p e rfe ct a m e n t e vá lid o d e fin irla co m o im p lícit a . Ad e m á s , n ó t e s e co m o re d e fin ie n d o co n ve rs io n e s im p lícit a s
p u e d e co n s e g u irs e q u e lo s t ip o s d e fin id o s p o r e l u s u a rio p u e d a n in icia liza rs e d ire ct a m e n t e a p a rt ir d e
va lo re s lit e ra le s t a l y co m o s i fu e s e n t ip o s b á s ico s d e l le n g u a je .
class A
{
static void Main(string[] args)
{
A obj = new B(); // Error: Conversión de B en A ambigua
}
class B
{
public static implicit operator A(B obj)
{
return new A();
}
using System;
class A
{
class B
{
public static implicit operator C(B obj)
{
return new C();
}
}
class C
{}
S in e m b a rg o , h a y q u e t e n e r cu id a d o ya q u e s i e n ve z d e l có d ig o a n t e rio r s e t u vie s e :
class A
{
public static implicit operator A(B obj)
{
return new A();
}
class B
{
public static implicit operator A(B obj)
{
return new A();
}
class C
{}
Prin cip io Pá g in a
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n
C#
En e s t a p á g in a :
● Te m a 1 2 : De le g a d o s y e ve n t o s
❍ Co n ce p t o d e d e le g a d o
❍ De fin ició n d e d e le g a d o s
❍ Ma n ip u la ció n d e o b je t o s d e le g a d o s
❍ La cla s e S ys t e m . Mu lt ica s t De le g a t e
❍ Lla m a d a s a s ín cro n a s
❍ Im p le m e n t a ció n in t e rn a d e lo s d e le g a d o s
❍ Eve n t o s
Te m a 1 2 : D e le g a d o s y e v e n t o s
Co n c e p t o d e d e le g a d o
Lo s d e le g a d o s s o n m u y ú t ile s ya q u e p e rm it e n d is p o n e r d e o b je t o s cu yo s m é t o d o s p u e d a n s e r m o d ifica d o s
d in á m ica m e n t e d u ra n t e la e je cu ció n d e u n p ro g ra m a . De h e ch o , s o n e l m e ca n is m o b á s ico e n e l q u e s e b a s a la
e s crit u ra d e a p lica cio n e s d e ve n t a n a s e n la p la t a fo rm a . NET. Po r e je m p lo , s i e n lo s o b je t o s d e u n a cla s e Button
q u e re p re s e n t e a lo s b o t o n e s e s t á n d a r d e Win d o ws d e fin im o s u n ca m p o d e t ip o d e le g a d o , p o d e m o s co n s e g u ir
q u e ca d a b o t ó n q u e s e cre e e je cu t e u n có d ig o d ife re n t e a l s e r p u ls a d o s in m á s q u e a lm a ce n a r e l có d ig o a
e je cu t a r p o r ca d a b o t ó n e n s u ca m p o d e t ip o d e le g a d o y lu e g o s o licit a r la e je cu ció n t o d o e s t e có d ig o
a lm a ce n a d o ca d a ve z q u e s e p u ls e e l b o t ó n .
Ad e m á s , lo s d e le g a d o s p ro p o rcio n a n u n m e ca n is m o s m e d ia n t e e l cu a l u n o s o b je t o s p u e d e n s o licit a r a o t ro s q u e
s e le s n o t ifiq u e cu a n d o o cu rra n cie rt o s s u ce s o s . Pa ra e llo , b a s t a ría s e g u ir e l p a t ró n co n s is t e n t e e n h a ce r q u e lo s
o b je t o s n o t ifica d o re s d is p o n g a n d e a lg ú n ca m p o d e t ip o d e le g a d o y h a ce r q u e lo s o b je t o s in t e re s a d o s
a lm a ce n e n m é t o d o s s u yo s e n d ich o s ca m p o s d e m o d o q u e cu a n d o o cu rra e l s u ce s o a p ro p ia d o e l o b je t o
n o t ifica d o r s im u le la n o t ifica ció n e je cu t a n d o t o d o s lo s m é t o d o s a s í a s o cia d o s a é l.
D e fin ic ió n d e d e le g a d o s
Un e je m p lo d e có m o d e fin ir u n d e le g a d o d e n o m b re De le g cu yo s o b je t o s p u e d a n a lm a ce n a r m é t o d o s q u e
d e vu e lva n u n string y t o m e n co m o p a rá m e t ro u n int e s :
Lo s o b je t o s d e le g a d o s d e e s t e t ip o s ó lo p o d rá n a lm a ce n a r có d ig o s d e m é t o d o s q u e n o d e vu e lva n n a d a y t o m e n
u n ú n ico p a rá m e t ro d e t ip o in t . Cu a lq u ie r in t e n t o d e a lm a ce n a r m é t o d o s co n o t ra s ca ra ct e rís t ica s p ro d u cirá u n
e rro r d e co m p ila ció n o , s i n o p u e d e d e t e ct a rs e a l co m p ila r, u n a e xce p ció n d e t ip o
System.ArgumentNullException e n t ie m p o d e e je cu ció n t a l y co m o m u e s t ra e l s ig u ie n t e p ro g ra m a d e
e je m p lo :
using System;
using System.Reflection;
Ejecutado Método1
Au n q u e e n ve z d e o b t e n e r e l MethodInfo q u e re p re s e n t a a l Método1 s e h u b ie s e o b t e n id o e l q u e re p re s e n t a a l
Método2 e l co m p ila d o r n o d e t e ct a ría n a d a ra ro a l co m p ila r ya q u e n o e s lo b a s t a n t e in t e lig e n t e co m o p a ra
s a b e r q u e d ich o o b je t o n o re p re s e n t a a u n m é t o d o a lm a ce n a b le e n o b je t o s d e le g a d o s d e t ip o D. S in e m b a rg o , a l
e je cu t a rs e la a p lica ció n e l CLR s í q u e lo d e t e ct a ría y e llo p ro vo ca ría u n a Arg u m e n t N u llEx c e p t io n
Ma n ip u la c ió n d e o b je t o s d e le g a d o s
Un o b je t o d e u n t ip o d e le g a d o s e cre a e xa ct a m e n t e ig u a l q u e u n o b je t o d e cu a lq u ie r cla s e s ó lo q u e e n s u
co n s t ru ct o r h a d e p a s á rs e le e l n o m b re d e l m é t o d o cu yo có d ig o a lm a ce n a rá . Es t e m é t o d o p u e d e t a n t o s e r u n
m é t o d o e s t á t ico co m o u n o n o e s t á t ico . En e l p rim e r ca s o s e in d ica ría s u n o m b re co n la s in t a xis
<nombreTipo>.<nombreMétodo>, y e n e l s e g u n d o s e in d ica ría co n <objeto>.<nombreMétodo>
using System;
class EjemploDelegado
{
public static void Main()
{
D objDelegado = new D(F);
objDelegado(3);
}
En re a lid a d u n o b je t o d e le g a d o p u e d e a lm a ce n a r có d ig o s d e m ú lt ip le s m é t o d o s t a n t o e s t á t ico s co m o n o
e s t á t ico s d e m a n e ra q u e u n a lla m a d a a t ra vé s s u ya p ro d u zca la e je cu ció n e n ca d e n a d e t o d o s e llo s e n e l m is m o
o rd e n e n q u e s e a lm a ce n a ro n e n é l. Nó t e s e q u e s i lo s m é t o d o s d e vu e lve n a lg ú n va lo r, t ra s la e je cu ció n d e la
ca d e n a d e lla m a d a s s ó lo s e d e vo lve rá e l va lo r d e re t o rn o d e la ú lt im a lla m a d a .
Ad e m á s , cu a n d o s e re a liza u n a lla m a d a a t ra vé s d e u n o b je t o d e le g a d o n o s e t ie n e n e n cu e n t a lo s
m o d ifica d o re s d e vis ib ilid a d d e lo s m é t o d o s q u e s e e je cu t a rá n , lo q u e p e rm it e lla m a r d e s d e u n t ip o a m é t o d o s
p riva d o s d e o t ro s t ip o s q u e e s t é n a lm a ce n a d o s e n u n d e le g a d o p o r a cce s ib le d e s d e e l p rim e ro t a l y co m o
m u e s t ra e l s ig u ie n t e e je m p lo :
using System;
class A
{
public static D obj;
class B
{
private static void Privado()
{ Console.WriteLine("Llamado a método privado"); }
Pa ra a ñ a d ir n u e vo s m é t o d o s a u n o b je t o d e le g a d o s e le a p lica e l o p e ra d o r += p a s á n d o le co m o o p e ra n d o
d e re ch o u n o b je t o d e le g a d o d e s u m is m o t ip o ( n o va le d e o t ro a u n q u e a d m it a lo s m is m o s t ip o s d e p a rá m e t ro s y
va lo r d e re t o rn o ) q u e co n t e n g a lo s m é t o d o s a a ñ a d irle , y p a ra q u it á rs e lo s s e h a ce lo m is m o p e ro co n e l
o p e ra d o r -=. Po r e je m p lo , e l s ig u ie n t e có d ig o m u e s t ra lo s e fe ct o s d e a m b o s o p e ra d o re s :
using System;
class EjemploDelegado
{
public string Nombre;
EjemploDelegado(string nombre)
{
Nombre = nombre;
}
Co m o s e ve , cu a n d o a h o ra s e h a ce la lla m a d a objDelegado(3) s e e je cu t a n lo s có d ig o s d e lo s d o s m é t o d o s
a lm a ce n a d o s e n objDelegado, y a l q u it á rs e le lu e g o u n o d e e s t o s có d ig o s la s ig u ie n t e lla m a d a s ó lo e je cu t a e l
có d ig o d e l q u e q u e d a . Nó t e s e a d e m á s e n e l e je m p lo co m o la re d e fin ició n d e + re a liza d a p a ra lo s d e le g a d o s
p e rm it e q u e s e p u e d a in icia liza r objDelegado u s a n d o += e n ve z d e =. Es d e cir, s i u n o d e lo s o p e ra n d o s d e +
va le null n o s e p ro d u ce n in g u n a e xce p ció n , s in o q u e t a n s ó lo n o s e a ñ a d e n in g ú n m é t o d o a l o t ro .
Ha y q u e s e ñ a la r q u e u n o b je t o d e le g a d o va le null s i n o t ie n e n in g ú n m é t o d o a s o cia d o , ya s e a p o rq u e n o s e h a
lla m a d o a ú n a s u co n s t ru ct o r o p o rq u e lo s q u e t u vie s e a s o cia d o s e le h a ya n q u it a d o co n -=. As í, s i a l Main()
d e l e je m p lo a n t e rio r le a ñ a d im o s a l fin a l:
Ta m b ié n h a y q u e s e ñ a la r q u e p a ra q u e e l o p e ra d o r -= fu n cio n e s e le h a d e p a s a r co m o o p e ra d o r d e re ch o u n
o b je t o d e le g a d o q u e a lm a ce n e a lg ú n m é t o d o e xa ct a m e n t e ig u a l a l m é t o d o q u e s e le q u ie ra q u it a r a l o b je t o
d e le g a d o d e s u la d o izq u ie rd o . Po r e je m p lo , s i s e le q u ie re q u it a r u n m é t o d o d e u n cie rt o o b je t o , s e le h a d e
p a s a r u n o b je t o d e le g a d o q u e a lm a ce n e e s e m é t o d o d e e s e m is m o o b je t o , y n o va le q u e a lm a ce n e e s e m é t o d o
p e ro d e o t ro o b je t o d e s u m is m o t ip o . Po r e je m p lo , s i a l Ma in ( ) a n t e rio r le a ñ a d im o s a l fin a l:
La c la s e S y s t e m . Mu lt ic a s t D e le g a t e
● o b je c t Ta rg e t : Pro p ie d a d d e s ó lo le ct u ra q u e a lm a ce n a e l o b je t o a l q u e p e rt e n e ce e l ú lt im o
m é t o d o a ñ a d id o a l o b je t o d e le g a d o . S i e s u n m é t o d o d e cla s e va le null.
● Me t h o d I n fo Me t h o d : Pro p ie d a d d e s ó lo le ct u ra q u e a lm a ce n a u n o b je t o
System.Reflection.MethodInfo co n in fo rm a ció n s o b re e l ú lt im o m é t o d o a ñ a d id o a l o b je t o
( n o m b re , m o d ifica d o re s , e t c. ) Pa ra s a b e r có m o a cce d e r a e s t o s d a t o s p u e d e co n s u lt a r la
d o cu m e n t a ció n in clu id a e n e l S DK s o b re la cla s e MethodInfo
● D e le g a t e [ ] g e t I n v o c a t io n Lis t ( ) : Pe rm it e a cce d e r a t o d o s lo s m é t o d o s a lm a ce n a d o s e n u n
d e le g a d o , ya q u e d e vu e lve u n a t a b la cu yo s e le m e n t o s s o n d e le g a d o s ca d a u n o d e lo s cu a le s
a lm a ce n a n u n o , y s ó lo u n o , d e lo s m é t o d o s d e l o rig in a l. Es t o s d e le g a d o s s e e n cu e n t ra n
o rd e n a d o s e n la t a b la e n e l m is m o o rd e n e n q u e s u s m é t o d o s fu e ro n fu e a lm a ce n a d o s e n e l
o b je t o d e le g a d o o rig in a l.
Es t e m é t o d o e s e s p e cia lm e n t e ú t il p o rq u e a t ra vé s d e la t a b la q u e re t o rn a s e p u e d e n h a ce r co s a s t a le s
co m o e je cu t a r lo s m é t o d o s d e l d e le g a d o e n u n o rd e n d ife re n t e a l d e s u a lm a ce n a m ie n t o , p ro ce s a r lo s
va lo re s d e re t o rn o d e t o d a s la s lla m a d a s a lo s m é t o d o s d e l d e le g a d o o rig in a l, e vit a r q u e u n a e xce p ció n
e n la e je cu ció n d e u n o d e lo s m é t o d o s im p id a la e je cu ció n d e lo s d e m á s , e t c.
Ap a rt e d e e s t o s m é t o d o s d e o b je t o , la cla s e System.MulticastDelegate t a m b ié n cu e n t a co n lo s s ig u ie n t e s
m é t o d o s d e t ip o d e u s o fre cu e n t e :
● s t a t ic D e le g a t e Co m b in e ( D e le g a t e fu e n t e , D e le g a t e d e s t in o ) : De vu e lve u n n u e vo
o b je t o d e le g a d o q u e a lm a ce n a la co n ca t e n a ció n d e lo s m é t o d o s d e fu e n t e co n lo s d e d e s t in o .
Po r t a n t o , n ó t e s e q u e e s t a s t re s in s t ru ccio n e s s o n e q u iva le n t e s :
Ha y q u e t e n e r cu id a d o co n lo s t ip o s d e lo s d e le g a d o s a co m b in a r ya q u e h a n d e s e r e xá ct a m e n t e lo s
m is m o s o s i n o s e la n za u n a System.ArgumentException, y e llo o cu rre a ú n e n e l ca s o d e q u e d ich o s
s ó lo s e d ife re n cie n e n s u n o m b re y n o e n s u s t ip o s d e p a rá m e t ro s y va lo r d e re t o rn o .
● s t a t ic D e le g a t e Co m b in e ( D e le g a t e [ ] t a b la ) : De vu e lve u n n u e vo d e le g a d o cu yo s m é t o d o s
a lm a ce n a d o s s o n la co n ca t e n a ció n d e t o d o s lo s d e la lis t a q u e s e le p a s a co m o p a rá m e t ro y
e n e l o rd e n e n q u e a p a re cie s e n e n e lla . Es u n a b u e n a fo rm a d e cre a r d e le g a d o s co n m u ch o s
m é t o d o s s in t e n e r q u e a p lica r += va ria s ve ce s .
To d o s lo s o b je t o s d e le g a d o s d e la t a b la h a n d e s e r d e l m is m o t ip o , p u e s s i n o s e p ro d u ciría u n a
System.ArgumentException.
● s t a t ic D e le g a t e Cre a t e D e le g a t e ( Ty p e t ip o , Me h o d I n fo m é t o d o ) : Ya s e u s ó e s t e
m é t o d o e n e l e je m p lo d e co m p ro b a ció n d e t ip o s d e l e p íg ra fe "De fin ició n d e d e le g a d o s " d e
e s t e m is m o t e m a . Co m o re co rd a rá p e m rit e cre a r d in á m ica m e n t e o b je t o s d e le g a d o s , ya q u e
d e vu e lve u n o b je t o d e le g a d o d e l t ip o in d ica d o q u e a lm a ce n a u n a re fe re n cia a l m é t o d o
re p re s e n t a d o p o r s u s e g u n d o p a rá m e t ro .
Lla m a d a s a s ín c ro n a s
Po r t a n t o lo s d e le g a d o s p ro p o rcio n a n u n có m o d o m e ca n is m o p a ra e je cu t a r cu a lq u ie r m é t o d o a s ín cro n a m e n t e ,
p u e s p a ra e llo b a s t a in t ro d u cirlo e n u n o b je t o d e le g a d o d e l t ip o a p ro p ia d o . S in e m b a rg o , e s t e m e ca n is m o d e
lla m a d a a s ín cro n a t ie n e u n a lim it a ció n , y e s q u e s ó lo e s vá lid o p a ra o b je t o s d e le g a d o s q u e a lm a ce n e n u n ú n ico
m é todo.
El p a rá m e t ro cb d e BeginInvoke() e s u n o b je t o d e t ip o d e le g a d o q u e p u e d e a lm a ce n a r m é t o d o s a e je cu t a r
cu a n d o e l h ilo a n t e s co m e n t a d o fin a lice s u t ra b a jo . A e s t o s m é t o d o s e l CLR le s p a s a rá a u t o m á t ica m e n t e co m o
p a rá m e t ro e l IAsyncResult d e vu e lt o p o r BeginInvoke(), e s t á n d o a s í d e fin id o e l d e le g a d o d e s t in a d o a
a lm a ce n a rlo s :
Do n d e e l m é t o d o M h a s id o d e fin id o e n la m is m a cla s e q u e e s t e có d ig o a s í:
int x=0;
Persona p = new Persona("Josan", "7361928-E", 22);
Po r o t ro la d o , h a y q u e s e ñ a la r q u e s i d u ra n t e la e je cu ció n a s ín cro n a d e u n m é t o d o s e p ro d u ce a lg u n a
e xce p ció n , é s t a n o s e ría n o t ifica d a p e ro p ro vo ca ría q u e e l h ilo a s ín cro n o a b o rt a s e . S i p o s t e rio rm e n t e s e lla m a s e
a En d I n v o k e ( ) co n e l I As y n c Re s u lt a s o cia d o a d ich o h ilo , s e re la n za ría la e xce p ció n q u e p ro d u jo e l a b o rt o y
e n t o n ce s p o d ría t ra t a rs e .
I m p le m e n t a c ió n in t e rn a d e lo s d e le g a d o s
Cu a n d o h a ce m o s u n a d e fin ició n d e d e le g a d o d e la fo rm a :
● o b je c t o b je t iv o co n t ie n e e l o b je t o a l cu a l p e rt e n e ce e l m é t o d o e s p e cifica d o , y s u va lo r s e
g u a rd a e n e l ca m p o _target. S i e s u n m é t o d o e s t á t ico a lm a ce n a null.
● in t p u n t e ro Mé t o d o co n t ie n e u n e n t e ro q u e p e rm it e a l co m p ila d o r d e t e rm in a r cu á l e s e l
m é t o d o d e l o b je t o a l q u e s e d e s e a lla m a r, y s u va lo r s e g u a rd a e n e l ca m p o _methodPtr.
S e g ú n d o n d e s e h a ya d e fin id o d ich o m é t o d o , e l va lo r d e e s t e p a rá m e t ro p ro ce d e rá d e la s
t a b la s MethodDef o MethodRef d e lo s m e t a d a t o s .
objDelegado(49);
Es co n ve rt id a p o r e l co m p ila d o r e n :
objDelegado.Invoke(49);
return _target._methodPtr(<parámetros>);
}
Po r ú lt im o , s ó lo s e ñ a la r q u e , co m o e s ló g ico , e n ca s o d e q u e lo s m é t o d o s q u e e l o b je t o d e le g a d o p u e d a
a lm a ce n a r n o t e n g a n va lo r d e re t o rn o ( é s t e s e a void) , e l cu e rp o d e Invoke() s ó lo va ría e n q u e la p a la b ra
re s e rva d a return e s e lim in a d a d e l m is m o .
Ev e n t o s
Co n c e p t o d e e v e n t o
Un e v e n t o e s u n a va ria n t e d e la s p ro p ie d a d e s p a ra lo s ca m p o s cu yo s t ip o s s e a n d e le g a d o s . Es d e cir, p e rm it e n
co n t ro la r la fo rm a n e n q u e s e a cce d e a lo s ca m p o s d e le g a d o s y d a n la p o s ib ilid a d d e a s o cia r có d ig o a e je cu t a r
ca d a ve z q u e s e a ñ a d a o e lim in e u n m é t o d o d e u n ca m p o d e le g a d o .
S in t a x is b á s ic a d e d e fin ic ió n d e d e le g a d o s
De s d e có d ig o u b ica d o d e n t ro d e l m is m o t ip o d e d a t o d o n d e s e h a ya d e fin id o e l e ve n t o s e p u e d e u s a r e l e ve n t o
t a l y co m o s i d e u n ca m p o d e le g a d o n o rm a l s e t ra t a s e . S in e m b a rg o , d e s d e có d ig o u b ica d o e xt e rn a m e n t e s e
im p o n e n u n a s e rie d e re s t riccio n e s q u e p e rm it e co n t ro la r la fo rm a e n q u e s e a cce d e a l m is m o . És t a s s o n :
● No s e le p u e d e a p lica r lo s m é t o d o s h e re d a d o s d e System.MulticastDelegate.
● No e s p o s ib le lla m a r a lo s m é t o d o s a lm a ce n a d o s e n u n ca m p o d e le g a d o a t ra vé s d e l m is m o .
S in t a x is c o m p le t a d e d e fin ic ió n d e d e le g a d o s
La ve rd a d e ra u t ilid a d d e u n e ve n t o e s q u e p e rm it e co n t ro la r la fo rm a e n q u e s e a s o cia n y q u it a n m é t o d o s d e lo s
o b je t o s d e le g a d o s co n += y -=. Pa ra e llo s e h a n d e d e fin ir co n la s ig u ie n t e s in t a xis a va n za d a :
private D prueba
[MethodImpl(MethodImlOptions.Synchronized)]
remove
{
prueba = (D) Delegate.Remove(prueba, value);
}
}
La s re s t riccio n e s d e u s o d e e ve n t o s d e s d e có d ig o s e xt e rn o s a l t ip o d o n d e s e h a n d e fin id o s e d e b e n a q u e e n
re a lid a d é s t o s n o s o n o b je t o s d e le g a d o s s in o q u e e l o b je t o d e le g a d o e s e l ca m p o p riva d o q u e in t e rn a m e n t e
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● Te m a 1 3 : Es t ru ct u ra s
❍ Co n ce p t o d e e s t ru ct u ra
❍ Dife re n cia s e n t re cla s e s y e s t ru ct u ra s
❍ Bo xin g y u n b o xin g
❍ Co n s t ru ct o re s
Te m a 1 3 : Es t ru c t u ra s
Co n c e p t o d e e s t ru c t u ra
D ife re n c ia s e n t re c la s e s y e s t ru c t u ra s
struct Point
{
public int x, y;
S i u s a m o s e s t e t ip o e n u n có d ig o co m o e l s ig u ie n t e :
De lo a n t e rio r s e d e d u ce q u e la a s ig n a ció n e n t re o b je t o s d e t ip o s e s t ru ct u ra s e s m u ch o m á s le n t a
q u e la a s ig n a ció n e n t re o b je t o s d e cla s e s , ya q u e s e h a d e co p ia r u n o b je t o co m p le t o y n o s o lo u n a
re fe re n cia . Pa ra a livia r e s t o a l p a s a r o b je t o s d e t ip o s e s t ru ct u ra co m o p a rá m e t ro s , s e d a la
p o s ib ilid a d d e p a s a rlo s co m o p a rá m e t ro s p o r re fe re n cia ( m o d ifica d o r ref) o p a rá m e t ro s d e s a lid a
( out) e n ve z d e co m o p a rá m e t ro s d e e n t ra d a .
Re s p e ct o a la im p le m e n t a ció n d e la ig u a ld a d e n lo s t ip o s d e fin id o s co m o e s t ru ct u ra s , t a m b ié n e s
im p o rt a n t e t e n e r m u y e n cu e n t a q u e e l o p e ra d o r == n o e s e n p rin cip io a p lica b le a la s e s t ru ct u ra s q u e
d e fin a e l p ro g ra m a d o r. S i s e d e s e a q u e lo t e n g a h a d e d á rs e le e xp lícit a m e n t e u n a re d e fin ició n a l
d e fin ir d ich a s e s t ru ct u ra s .
Bo x in g y u n b o x in g
class T_Box
{
T value;
T_Box(T t)
{
value = t;
}
}
En re a lid a d t o d o e s t o o cu rre d e fo rm a t ra n s p a re n t e a l p ro g ra m a d o r, e l cu a l s im p le m e n t e a s ig n a e l
o b je t o d e t ip o va lo r a u n o b je t o d e t ip o re fe re n cia co m o s i d e cu a lq u ie r a s ig n a ció n p o lim ó rfica s e
t ra t a s e . Po r e je m p lo :
Console.WriteLine((p is Punto));
El p ro ce s o d e u n b o xin g e s t a m b ié n t ra n s p a re n t e a l p ro g ra m a d o r. Po r e je m p lo , p a ra re cu p e ra r co m o
Punto e l va lo r d e t ip o Punto a lm a ce n a d o e n e l o b je t o o a n t e rio r s e h a ría :
int i = 123;
object o = i;
long l = (long) o // Error: o contiene un int, no un long
S in e m b a rg o , lo q u e s i s e ría vá lid o e s h a ce r:
● S i e l p ro b le m a s e d e b e a l p a s o d e e s t ru ct u ra s co m o p a rá m e t ro s d e m é t o d o s
g e n é rico s q u e t o m e n p a rá m e t ro s d e t ip o object, p u e d e co n ve n ir d e fin ir
s o b re ca rg a s d e e s o s m é t o d o s q u e e n lu g a r d e t o m a r objects t o m e n o b je t o s d e lo s
t ip o s e s t ru ct u ra q u e e n co n cre t o la a p lica ció n u t iliza
t a n t o n o im p lica u n b o xin g .
● Co n la m is m a id e a , o t ra p o s ib ilid a d s e ría q u e e l t ip o e s t ru ct u ra im p le m e n t a s e
cie rt a s in t e rfa ce s m e d ia n t e la s q u e s e p u d ie s e h a ce r la s o p e ra cio n e s a n t e s
co m e n t a d a s . Au n q u e la s in t e rfa ce s n o s e t ra t a rá n h a s t a e l Te m a 1 5 : In t e rfa ce s , p o r
a h o ra b a s t a s a b e r q u e la s in t e rfa ce s s o n t a m b ié n t ip o s re fe re n cia y p o r t a n t o
co n ve rt ir d e object a u n t ip o in t e rfa z n o im p lica u n b o xin g .
Co n s t ru c t o re s
Lo s co n s t ru ct o re s d e la s e s t ru ct u ra s s e co m p o rt a n d e u n a fo rm a d is t in t a a lo s d e la s cla s e s . Po r u n
la d o , n o p u e d e n in clu ir n in g ú n in icia liza d o r b a s e d e b id o a q u e co m o n o p u e d e h a b e r h e re n cia e l
co m p ila d o r s ie m p re s a b e q u e h a d e lla m a r a l co n s t ru ct o r s in p a rá m e t ro s d e System.ValueType.
Po r o t ro , d e n t ro d e s u cu e rp o n o s e p u e d e a cce d e r a s u s m ie m b ro s h a s t a in icia liza rlo s , p u e s p a ra
a h o rra r t ie m p o n o s e le s d a n in g ú n va lo r in icia l a n t e s d e lla m a r a l co n s t ru ct o r.
S in e m b a rg o , la d ife re n cia m á s im p o rt a n t e e n t re lo s co n s t ru ct o re s d e a m b o s t ip o s s e e n cu e n t ra e n la
im p le m e n t a ció n d e l co n s t ru ct o r s in p a rá m e t ro s : co m o lo s o b je t o s e s t ru ct u ra n o p u e d e a lm a ce n a r e l
va lo r p o r d e fe ct o null cu a n d o s e d e cla ra n s in u s a r co n s t ru ct o r ya q u e e s e va lo r in d ica re fe re n cia a
p o s ició n d e m e m o ria d in á m ica in d e t e rm in a d a y lo s o b je t o s e s t ru ct u ra n o a lm a ce n a n re fe re n cia s , t o d a
e s t ru ct u ra s ie m p re t ie n e d e fin id o u n co n s t ru ct o r s in p a rá m e t ro s q u e lo q u e h a ce e s d a rle e n e s o s
ca s o s u n va lo r p o r d e fe ct o a lo s o b je t o s d e cla ra d o s . Es e va lo r co n s is t e e n p o n e r a ce ro t o d a la
m e m o ria o cu p a d a p o r e l o b je t o , lo q u e t ie n e e l e fe ct o d e d a r co m o va lo r a ca d a ca m p o e l ce ro d e s u
t ip o . Po r e je m p lo , e l s ig u ie n t e có d ig o im p rim e u n 0 e n p a n t a lla :
Y e l s ig u ie n t e t a m b ié n :
using System;
struct Punto
{
public int X,Y;
}
class EjemploConstructorDefecto
{
Punto p;
S in e m b a rg o , e l h e ch o d e q u e e s t e co n s t ru ct o r p o r d e fe ct o s e a p liq u e n o im p lica q u e s e p u e d a
a cce d e r a la s va ria b le s lo ca le s s in a n t e s in icia liza rla s co n o t ro va lo r. Po r e je m p lo , e l s ig u ie n t e
fra g m e n t e d e có d ig o d e u n m é t o d o s e ría in co rre ct o :
Punto p;
Console.WriteLine(p.X); // X no inicializada
S in e m b ra g o , co m o a la s e s t ru ct u ra s d e cla ra d a s s in co n s t ru ct o r n o s e le s d a e l va lo r p o r d e fe ct o
null, s í q u e s e ría vá lid o :
Punto p;
p.X = 2;
Console.WriteLine(p.X);
Pa ra a s e g u ra r u n va lo r p o r d e fe ct o co m ú n a t o d o s lo s o b je t o s e s t ru ct u ra , s e p ro h íb e a l p ro g ra m a d o r
d a r u n a d e fin ició n p ro p ia d e s u co n s t ru ct o r s in p a rá m e t ro s . Mie n t ra s q u e e n la s cla s e s e s o p cio n a l
im p le m e n t a rlo y s i n o s e h a ce e l co m p ila d o r in t ro d u ce u n o p o r d e fe ct o , e n la s e s t ru ct u ra s n o e s
vá lid o h a ce rlo . Ad e m á s , a ú n e n e l ca s o d e q u e s e d e fin a n o t ro s co n s t ru ct o re s , e l co n s t ru ct o r s in
p a rá m e t ro s s e g u irá s ie n d o in t ro d u cid o a u t o m á t ica m e n t e p o r e l co m p ila d o r a d ife re n cia d e có m o
o cu rría co n la s cla s e s d o n d e e n e s e ca s o e l co m p ila d o r n o lo in t ro d u cía .
Po r o t ro la d o , p a ra co n s e g u ir q u e e l va lo r p o r d e fe ct o d e t o d o s lo s o b je t o s e s t ru ct u ra s s e a e l m is m o ,
s e p ro h íb e d a rle s u n a va lo r in icia l a s u s ca m p o s e n e l m o m e n t o d e d e cla ra rlo s , p u e s s i n o e l
co n s t ru ct o r p o r d e fe ct o h a b ría d e t e n e rlo s e n cu e n t a y s u e je cu ció n s e ría m á s in e ficie n t e . Po r e s t a
ra zó n , lo s co n s t ru ct o re s d e fin id o s p o r e l p ro g ra m a d o r p a ra u n a e s t ru ct u ra h a n d e in icia liza r t o d o s s u s
m ie m b ro s n o e s t á t ico s e n t a n t o q u e a n t e s d e lla m a rlo s n o s e le s d a n in g ú n va lo r in icia l.
struct A
{
public readonly string S;
public A(string s)
{
if (s==null)
throw (new ArgumentNullException());
this.s = S;
}
}
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 1 4 : En u m e ra cio n e s
❍ Co n ce p t o d e e n u m e ra ció n
❍ De fin ició n d e e n u m e ra cio n e s
❍ Us o d e e n u m e ra cio n e s
❍ La cla s e S ys t e m . En u m
❍ En u m e ra cio n e s d e fla g s
Te m a 1 4 : En u m e ra c io n e s
Co n c e p t o d e e n u m e ra c ió n
Un a e n u m e ra c ió n o t ip o e n u m e ra d o e s u n t ip o e s p e cia l d e e s t ru ct u ra e n la q u e lo s lit e ra le s d e lo s va lo re s q u e
p u e d e n t o m a r s u s o b je t o s s e in d ica n e xp lícit a m e n t e a l d e fin irla . Po r e je m p lo , u n a e n u m e ra ció n d e n o m b re Ta m a ñ o
cu yo s o b je t o s p u d ie s e n t o m a r lo s va lo re s lit e ra le s Pe q u e ñ o , Me d ia n o o Gra n d e s e d e fin iría a s í:
enum Tamaño
{
Pequeño,
Mediano,
Grande
}
obj.MuestraTexto(2); // (1)
obj.MuestraTexto(Tamaño.Mediano); // (2)
D e fin ic ió n d e e n u m e ra c io n e s
El t ip o p o r d e fe ct o d e la s co n s t a n t e s q u e fo rm a n u n a e n u m e ra ció n e s int, a u n q u e p u e d e d á rs e le s cu a lq u ie r o t ro
t ip o b á s ico e n t e ro ( byte, sbyte, short, ushort, uint, int, long o ulong) in d icá n d o lo e n <tipoBase>
Cu a n d o s e h a g a e s t o h a y q u e t e n e r m u y p re s e n t e q u e e l co m p ila d o r d e C# s ó lo a d m it e q u e s e in d iq u e n a s í lo s
a lia s d e e s t o s t ip o s b á s ico s , p e ro n o s u s n o m b re s re a le s ( System.Byte, System.SByte, e t c. )
enum Tamaño:int
{
Pequeño = 0,
Mediano = 1,
Grande = 2
}
enum Tamaño
{
Pequeño,
Mediano = 5,
Grande
}
enum Tamaño
{
Pequeño,
Mediano = Pequeño,
Grande = Pequeño + Mediano
}
enum TamañoMal
{
Pequeño = Mediano,
Mediano = Pequeño,
Grande
}
enum EnumMal
{
A = B,
B
}
Us o d e e n u m e ra c io n e s
Tamaño t;
El va lo r p o r d e fe ct o p a ra u n o b je t o d e u n a e n u m e ra ció n e s 0 , q u e p u e d e o n o co rre s p o n d e rs e co n a lg u n o d e lo s
lit e ra le s d e fin id o s p a ra é s t a . As í, s i la t d e l e je m p lo fu e s e u n ca m p o s u va lo r s e ría Tamaño.Pequeño. Ta m b ié n
p u e d e d á rs e le o t ro va lo r a l d e fin irla , co m o m u e s t ra e l s ig u ie n t e e je m p lo d o n d e s e le d a e l va lo r Tamaño.Grande:
Co m o s e ve e n e l ú lt im o e je m p lo , t a m b ié n e s p o s ib le d a rle a u n a e n u m e ra ció n va lo re s e n t e ro s q u e n o s e
co rre s p o n d a n co n n in g u n o d e s u s lit e ra le s .
La c la s e S y s t e m . En u m
Tamaño t = Color.Pequeño;
Console.WriteLine(t); // Muestra por pantalla la cadena "Pequeño"
Co m o t a m b ié n p u e d e re s u lt a r in t e ra s a n t e o b t e n e r e l va lo r n u m é rico d e l lit e ra l, s e h a s o b re ca rg a d o
System.Enum e l m é t o d o a n t e rio r p a ra q u e t o m e co m o p a rá m e t ro u n a ca d e n a q u e in d ica có m o s e d e s e a
m o s t ra r e l lit e ra l a lm a ce n a d o e n e l o b je t o . S i e s t a ca d e n a e s n u la , va cía o va le "G" m u e s t ra e l lit e ra l co m o
s i d e l m é t o d o ToString() e s t á n d a r s e t ra t a s e , p e ro s i va le "D" o "X" lo q u e m u e s t ra e s s u va lo r
n u m é rico ( e n d e cim a l s i va le "D" y e n h e xa d e cim a l s i va le "X") Po r e je m p lo :
Console.WriteLine(t.ToString("X")); // Muestra 0
Console.WriteLine(t.ToString("G")); // Muestra Pequeño
ú lt im o lu g a r a l d e fin ir la e n u m e ra ció n .
s t a t ic o b je c t P a rs e ( Ty p e e n u m , s t rin g n o m b re , b o o l m a y u s c u la s ? ) : Cre a u n o b je t o d e u n t ip o
e n u m e ra d o cu yo va lo r e s e l co rre s p o n d ie n t e a l lit e ra l d e n o m b re a s o cia d o n o m b re . S i la e n u m e ra ció n n o
t u vie s e n in g ú n lit e ra l co n e s e n o m b re s e la n za ría u n a ArgumentException, y p a ra d e t e rm in a r có m o s e h a
d e b u s ca r e l n o m b re e n t re lo s lit e ra le s d e la e n u m e ra ció n s e u t iliza e l t e rce r p a rá m e t ro ( e s o p cio n a l y p o r
d e fe ct o va le false) q u e in d ica s i s e h a d e ig n o ra r la ca p it a liza ció n a l b u s ca rlo . Un e je m p lo d e l u s o d e e s t e
m é todo e s:
● s t a t ic o b je c t [ ] Ge t Va lu e s ( Ty p e e n u m ) : De vu e lve u n a t a b la co n lo s va lo re s d e t o d o s lo s
lit e ra le s d e la e n u m e ra ció n re p re s e n t a d a p o r e l o b je t o S y s t e m . Ty p e q u e s e le p a s a co m o
p a rá m e t ro . Po r e je m p lo :
● s t a t ic s t rin g Ge t N a m e ( Ty p e e n u m , o b je c t v a lo r) : De vu e lve u n a ca d e n a co n e l n o m b re d e l
lit e ra l d e la e n u m e ra ció n re p re s e n t a d a p o r e n u m q u e t e n g a e l va lo r e s p e cifica d o e n va lo r. Po r
e je m p lo , e s t e có d ig o m u e s t ra Pe q u e ñ o p o r p a n t a lla :
En u m e ra c io n e s d e fla g s
enum ModificadorArchivo
{
Lectura = 1,
Escritura = 2,
Oculto = 4,
Sistema = 8
}
El va lo r d e l t ip o b a s e d e la e n u m e ra ció n q u e s e h a b rá a lm a ce n a d o e n o b j e s 3 , q u e e s e l re s u lt a d o d e h a ce r la
o p e ra ció n OR e n t re lo s b it s d e lo s va lo re s d e lo s lit e ra le s Lectura y Escritura. Al s e r lo s lit e ra le s d e
ModificadorArchivo p o t e n cia s d e d o s s ó lo t e n d rá n u n ú n ico b it a 1 y d ich o b it s e rá d ife re n t e e n ca d a u n o d e
e llo s , p o r lo q u e la ú n ica fo rm a d e g e n e ra r u n 3 ( ú lt im o s d o s b it s a 1 ) co m b in a n d o lit e ra le s d e
ModificadorArchivo e s co m b in a n d o lo s lit e ra le s Lectura ( ú lt im o b it a 1 ) y Escritura ( p e n ú lt im o b it a 1 )
Po r t a n t o , e l va lo r d e obj id e n t ifica rá u n ívo ca m e n t e la co m b in a ció n d e d ich o s lit e ra le s .
O lo q u e e s lo m is m o :
Console.Write(obj); // Muestra 3
[Flags]
enum ModificadorArchivo
{
Lectura = 1,
Escritura = 2,
Oculto = 4,
Sistema = 8
}
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n
C#
En e s t a p á g in a :
● Te m a 1 5 : In t e rfa ce s
❍ Co n ce p t o d e in t e rfa z
❍ De fin ició n d e in t e rfa ce s
❍ Im p le m e n t a ció n d e in t e rfa ce s
❍ Acce s o a m ie m b ro s d e u n a in t e rfa z
Te m a 1 5 : I n t e rfa c e s
Co n c e p t o d e in t e rfa z
● La s in t e rfa ce s s ó lo p u e d e n t e n e r co m o m ie m b ro s m é t o d o s n o rm a le s , e ve n t o s , p ro p ie d a d e s e
D e fin ic ió n d e in t e rfa c e s
● Mé t o d o s : <tipoRetorno> <nombreMétodo>(<parámetros> );
interface IA
{
int PropiedadA
interface IB
{
int this [int índice] {get; set;}
void Común(int x);
}
Nó t e s e q u e a u n q u e la s in t e rfa ce s p a d re s d e IC co n t ie n e n u n m é t o d o co m ú n n o h a y p ro b le m a a lg u n o a la h o ra d e
d e fin irla s . En e l s ig u ie n t e e p íg ra fe ve re m o s có m o s e re s u e lve n la s a m b ig ü e d a d e s q u e p o r e s t o p u d ie s e n d a rs e a l
im p le m e n t a r IC.
I m p le m e n t a c ió n d e in t e rfa c e s
Cu a n d o u n m ie m b ro s e im p le m e n t a e xp lícit a m e n t e n o p u e d e d á rs e le m o d ifica d o re s co m o e n la s
im p le m e n t a cio n e s im p lícit a s , n i s iq u ie ra virtual o abstract. Un a fo rm a d e s im u la r lo s m o d ifica d o re s q u e s e
n e ce s it e n co n s is t e e n d a rle s u n cu e rp o q u e lo q u e h a g a s e a lla m a r a o t ra fu n ció n q u e s í cu e n t e co n e s o s
m o d ifica d o re s .
class CL:IC
{
public int PropiedadA
{
get {return 5;}
set {Console.WriteLine("Asignado {0} a PropiedadA", value);}
}
void IA.Común(int x)
{
Console.WriteLine("Ejecutado Común() de IA");
}
void IB.Común(int x)
{
Console.WriteLine("Ejecutado Común() de IB");
}
● Al m é t o d o Común() s e le h a d a d o u n a im p le m e n t a ció n p a ra ca d a ve rs ió n h e re d a d a d e u n a d e
la s cla s e s p a d re d e IC, u s á n d o s e p a ra e llo la s in t a xis d e im p le m e n t a ció n e xp lícit a a n t e s
co m e n t a d a . Nó t e s e q u e n o s e h a in clu id o e l m o d ifica d o r public e n la im p le m e n t a ció n d e e s t o s
m ie m b ro s .
interface IPadre
{
int P
}
interface IHija:Padre
{
new int P();
}
class C: IHija
{
void IPadre.P {}
public int P()
}
O a s í:
class C: IHija
{
public void P () {}
int IHija.P() {}
O a s í:
class C: IHija
{
void IPadre.P() {}
int IHija.P() {}
}
class C: IHija
{
public int P() {} // ERROR: Ambos miembros tienen la misma signatura
public void P() {}
}
using System;
interface IA
{
void F();
}
class C1: IA
{
public void F()
{
Console.WriteLine("El F() de C1");
}
}
obj.F();
obj2.F();
}
}
El F() de C1
El F() de C2
Ha y q u e t e n e r e n cu e n t a q u e d e e s t a m a n e ra s ó lo p u e d e n h a ce rs e re im p le m e n t a cio n e s d e m ie m b ro s s i la cla s e
d o n d e s e re im p le m e n t a h e re d a d ire ct a m e n t e d e la in t e rfa z im p le m e n t a d a e xp lícit a m e n t e o d e a lg u n a in t e rfa z
d e riva d a d e é s t a . As í, e n e l e je m p lo a n t e rio r s e ría in co rre ct o h a b e r h e ch o :
interface I1
{
void F()
}
interface I2
{}
class C1:I2
{
public void I2.F(); //ERROR: habría que usar I1.F()
}
Ac c e s o a m ie m b ro s d e u n a in t e rfa z
CL c = new CL();
Console.WriteLine(c.PropiedadA);
IA a = new CL();
Console.WriteLine(a.PropiedadA);
En ca s o d e q u e e l m ie m b ro a l q u e s e p re t e n d a a cce d e r h a ya s id o im p le m e n t a d o e xp lícit a m e n t e , s ó lo p u e d e
a cce d e rs e a é l a t ra vé s d e va ria b le s d e l t ip o in t e rfa z a l q u e p e rt e n e ce y n o a t ra vé s d e va ria b le s d e t ip o s q u e
h e re d e n d e e lla , ya q u e la d e fin ició n d e e s t o s m ie m b ro s e s p riva d a a l n o lle va r m o d ifica d o r d e a cce s o . Po r
e je m p lo :
CL cl = new CL();
IA a = cl;
IB b = cl;
// Console.WriteLine(cl.Común()); // Error: Común() fue
// implementado explícitamente
Console.WriteLine(a.Común());
Console.WriteLine(b.Común());
Console.WriteLine(((IA) cl).Común());
Console.WriteLine(((IB) cl).Común());
Ejecutado Común() de IA
Ejecutado Común() de IB
Ejecutado Común() de IA
Ejecutado Común() de IB
interface I
{
object Clone();
}
class Clase:I
{
public object Clone()
{
Console.WriteLine("Implementación implícita");
}
El re s u lt a d o q u e p o r p a n t a lla s e m o s t ra rá t ra s e je cu t a rlo e s :
Implementación explícita
Implementación implícita
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n
C#
En e s t a p á g in a :
● Te m a 1 6 : In s t ru ccio n e s
❍ Co n ce p t o d e in s t ru cció n
❍ In s t ru ccio n e s b á s ica s
❍ In s t ru ccio n e s co n d icio n a le s
❍ In s t ru ccio n e s it e ra t iva s
❍ In s t ru ccio n e s d e e xce p cio n e s
❍ In s t ru ccio n e s d e s a lt o
❍ Ot ra s in s t ru ccio n e s
Te m a 1 6 : I n s t ru c c io n e s
Co n c e p t o d e in s t ru c c ió n
{ <listaInstrucciones> }
I n s t ru c c io n e s b á s ic a s
D e fin ic io n e s d e v a ria b le s lo c a le s
As ig n a c io n e s
Un a a s ig n a c ió n e s s im p le m e n t e u n a in s t ru cció n m e d ia n t e la q u e s e in d ica u n va lo r a a lm a ce n a r e n u n d a t o . La
s in t a xis u s a d a p a ra e llo e s :
<destino> = <origen>;
En t e m a s p re vio s ya s e h a n d a d o n u m e ro s o s e je m p lo s d e có m o h a ce r e s t o , p o r lo q u e n o e s n e ce s a rio h a ce r
a h o ra m a yo r h in ca p ié e n e llo .
Lla m a d a s a m é t o d o s
<objeto>.<nombreMétodo>(<valoresParámetros>);
<nombreTipo>.<nombreMétodo>(<valoresParámetros>);
I n s t ru c c ió n n u la
I n s t ru c c io n e s c o n d ic io n a le s
La s in s t ru c c io n e s c o n d ic io n a le s s o n in s t ru ccio n e s q u e p e rm it e n e je cu t a r b lo q u e s d e in s t ru ccio n e s s ó lo s i s e d a
u n a d e t e rm in a d a co n d ició n . En lo s s ig u ie n t e s s u b a p a rt a d o s d e e s t e e p íg ra fe s e d e s crib e n cu á le s s o n la s
in s t ru ccio n e s co n d icio n a le s d is p o n ib le s e n C#
I n s t ru c c ió n if
if (<condición>)
<instruccionesIf>
else
<instruccionesElse>
using System;
class HolaMundoIf
{
public static void Main(String[] args)
{
if (args.Length > 0)
Console.WriteLine("¡Hola {0}!", args[0]);
else
Console.WriteLine("¡Hola mundo!");
}
}
S i e je cu t a m o s e s t e p ro g ra m a s in n in g ú n a rg u m e n t o ve re m o s q u e e l m e n s a je q u e s e m u e s t ra e s ¡Hola Mundo!,
m ie n t ra s q u e s i lo e je cu t a m o s co n a lg ú n a rg u m e n t o s e m o s t ra rá u n m e n s a je d e b ie n ve n id a p e rs o n a liza d o co n e l
p rim e r a rg u m e n t o in d ica d o .
I n s t ru c c ió n s w it c h
switch (<expresión>)
{
case <valor1>: <bloque1>
<siguienteAcción>
case <valor2>: <bloque2>
<siguienteAcción>
...
default: <bloqueDefault>
<siguienteAcción>
}
El s ig u ie n t e e je m p lo m u e s t ra có m o s e u t iliza switch:
using System;
class HolaMundoSwitch
{
public static void Main(String[] args)
{
if (args.Length > 0)
switch(args[0])
{
case "José": Console.WriteLine("Hola José. Buenos días");
break;
case "Paco": Console.WriteLine("Hola Paco. Me alegro de verte");
break;
default: Console.WriteLine("Hola {0}", args[0]);
break;
}
else
Console.WriteLine("Hola Mundo");
}
}
Es t e p ro g ra m a re co n o ce cie rt o s n o m b re s d e p e rs o n a s q u e s e le p u e d e n p a s a r co m o a rg u m e n t o s a l la n za rlo y le s
s a lu d a d e fo rm a e s p e cia l. La ra m a default s e in clu ye p a ra d a r u n s a lu d o p o r d e fe ct o a la s p e rs o n a s n o
re co n o cid a s .
Pa ra lo s p ro g ra m a d o re s h a b it u a d o s a le n g u a je s co m o C+ + e s im p o rt a n t e re s a lt a rle s e l h e ch o d e q u e , a
d ife re n cia d e d ich o s le n g u a je s , C# o b lig a a in clu ir u n a s e n t e n cia break o u n a s e n t e n cia goto case a l fin a l d e
ca d a ra m a d e l switch p a ra e vit a r e rro re s co m u n e s y d ifícile s d e d e t e ct a r ca u s a d o s p o r o lvid a r in clu ir break; a l
fin a l d e a lg u n o d e e s t o s b lo q u e s y e llo p ro vo ca r q u e t ra s e je cu t a rs e e s e b lo q u e s e e je cu t e t a m b ié n e l s ig u ie n t e .
I n s t ru c c io n e s it e ra t iv a s
La s in s t ru c c io n e s it e ra t iv a s s o n in s t ru ccio n e s q u e p e rm it e n e je cu t a r re p e t id a s ve ce s u n a in s t ru cció n o u n
b lo q u e d e in s t ru ccio n e s m ie n t ra s s e cu m p la u n a co n d ició n . Es d e cir, p e rm it e n d e fin ir b u cle s d o n d e cie rt a s
in s t ru ccio n e s s e e je cu t e n va ria s ve ce s . A co n t in u a ció n s e d e s crib e n cu á le s s o n la s in s t ru ccio n e s d e e s t e t ip o
in clu id a s e n C# .
I n s t ru c c ió n w h ile
while (<condición>)
<instrucciones>
Un e je m p lo có m o u t iliza r e s t a in s t ru cció n e s e l s ig u ie n t e :
using System;
class HolaMundoWhile
{
public static void Main(String[] args)
{
int actual = 0;
if (args.Length > 0)
while (actual < args.Length)
{
Console.WriteLine("¡Hola {0}!", args[actual]);
actual = actual + 1;
}
else
Console.WriteLine("¡Hola mundo!");
}
}
I n s t ru c c ió n d o . . . w h ile
do
<instrucciones>
while(<condición>);
using System;
class HolaMundoDoWhile
{
public static void Main()
{
String leído;
do
{
Console.WriteLine("Clave: ");
leído = Console.ReadLine();
}
while (leído != "José");
Console.WriteLine("Hola José");
}
}
I n s t ru c c ió n fo r
using System;
class HolaMundoFor
{
public static void Main(String[] args)
{
if (args.Length > 0)
for (int actual = 0; actual < args.Length; actual++)
Console.WriteLine("¡Hola {0}!", args[actual]);
else
Console.WriteLine("¡Hola mundo!");
}
}
I n s t ru c c ió n fo re a c h
En t a n t o q u e u n a t a b la s e co n s id e ra q u e e s u n a co le cció n , e l s ig u ie n t e có d ig o m u e s t ra có m o u s a r for p a ra
co m p a ct a r a ú n m á s e l có d ig o d e la cla s e Ho la Mu n d o Fo r a n t e rio r:
using System;
class HolaMundoFoeach
{
public static void Main(String[] args)
{
if (args.Length > 0)
foreach(String arg in args)
Console.WriteLine("¡Hola {0}!", arg);
else
Console.WriteLine("¡Hola mundo!");
}
}
En g e n e ra l, s e co n s id e ra q u e u n a co le cció n e s t o d o a q u e l o b je t o q u e im p le m e n t e la in t e rfa z
System.Collections.IEnumerable. Es t a in t e rfa z e s t á d e fin id a e n la BCL a s í:
interface IEnumerable
{
IEnumerator GetEnumerator();
}
El o b je t o d e in t e rfa z System.Collections.IEnumerator d e vu e lt o h a d e s e r u n e n u m e ra d o r q u e p e rm it a
re co rre r lo s e le m e n t o s d e la <colección>. Dich a in t e rfa z e s t á a s í p re d e fin id a :
interface IEnumerator
{
object Current
bool MoveNext();
void Reset();
}
El m é t o d o MoveNext() s e h a d e im p le m e n t a r d e m o d o q u e h a g a q u e e l e n u m e ra d o r p a s e a a p u n t a r a l s ig u ie n t e
e le m e n t o d e la co le cció n y d e vu e lva u n b o o le a n o q u e in d iq u e s i t ra s a va n za r s e h a a lca n za d o e l fin a l d e la
co le cció n .
El s ig u ie n t e e je m p lo m u e s t ra a m b o s t ip o s d e im p le m e n t a cio n e s :
using System;
using System.Collections;
class Patron
{
private int actual = -1;
actual++;
if (actual==10)
resultado = false;
return resultado;
}
}
class Interfaz:IEnumerable,IEnumerator
{
private int actual = -1;
actual++;
if (actual==10)
resultado = false;
return resultado;
}
class Principal
{
public static void Main()
{
Patron obj = new Patron();
int[,] tabla = { , };
1
2
3
4
I n s t ru c c io n e s d e e x c e p c io n e s
Co n c e p t o d e e x c e p c ió n .
Tra d icio n a lm e n t e , e l s is t e m a q u e e n o t ro s le n g u a je s y p la t a fo rm a s s e h a ve n id o u s a n d o p a ra in fo rm a r e s t o s
e rro re s co n s is t ía s im p le m e n t e e n h a ce r q u e lo s m é t o d o s e n cu ya e je cu ció n p u d ie s e n p ro d u cirs e d e vo lvie ra n
có d ig o s q u e in fo rm a s e n s o b re s i s e h a n e je cu t a d o co rre ct a m e n t e o , e n ca s o co n t ra rio , s o b re cu á l fu e e l e rro r
p ro d u cid o . S in e m b a rg o , la s e xce p cio n e s p ro p o rcio n a n la s s ig u ie n t e s ve n t a ja s fre n t e a d ich o s is t e m a :
La c la s e S y s t e m . Ex c e p t io n
● Me t h o d Ba s e Ta rg e t S it e { v irt u a l g e t ;} : Alm a ce n a cu á l fu e e l m é t o d o d o n d e s e p ro d u jo la
e xce p ció n e n fo rm a d e o b je t o System.Reflection.MethodBase. Pu e d e co n s u lt a r la
d o cu m e n t a ció n d e l S DK s i d e s e a có m o o b t e n e r in fo rm a ció n s o b re la s ca ra ct e rís t ica s d e l
m é t o d o a t ra vé s d e l o b je t o MethodBase.
Exception()
Exception(string msg)
Exception(string msg, Exception causante)
Ex c e p c io n e s p re d e fin id a s c o m u n e s
Tip o d e la e x c e p c ió n Ca u s a d e q u e s e p ro d u z c a la e x c e p c ió n
Arg u m e n t Ex c e p t io n Pa s a d o a rg u m e n t o n o vá lid o ( b a s e d e e xce p cio n e s d e a rg u m e n t o s )
Arg u m e n t N u llEx c e p t io n Pa s a d o a rg u m e n t o n u lo
Arg u m e n t Ou t OfRa n g e Ex c e p t io n Pa s a d o a rg u m e n t o fu e ra d e ra n g o
Arra y Ty p e Mis t m a t c h Ex c e p t io n As ig n a ció n a t a b la d e e le m e n t o q u e n o e s d e s u t ip o
COMEx c e p t io n Exce p ció n d e o b je t o COM
D iv id e By Ze ro Ex c e p t io n Divis ió n p o r ce ro
Ín d ice d e a cce s o a e le m e n t o d e t a b la fu e ra d e l ra n g o vá lid o ( m e n o r q u e
I n d e x Ou t OfRa n g e Ex c e p t io n
ce ro o m a yo r q u e e l t a m a ñ o d e la t a b la )
I n v a lid Ca s t Ex c e p t io n Co n ve rs ió n e xp lícit a e n t re t ip o s n o vá lid a
I n v a lid Op e ra t io n Ex c e p t io n Op e ra ció n in vá lid a e n e s t a d o a ct u a l d e l o b je t o
I n t e ro p Ex c e p t io n Ba s e d e e xce p cio n e s p ro d u cid a s e n co m u n ica ció n co n có d ig o in s e g u ro
N u llRe fe re n c e Ex c e p t io n Acce s o a m ie m b ro d e o b je t o q u e va le null
De s b o rd a m ie n t o d e n t ro d e co n t e xt o d o n d e s e h a d e co m p ro b a r lo s
Ov e rflo w Ex c e p t io n d e s b o rd a m ie n t o s ( e xp re s ió n co n s t a n t e , in s t ru cció n ch e cke d , o p e ra n ció n
ch e cke d u o p ció n d e l co m p ila d o r / ch e cke d )
Ou t OfMe m o ry Ex c e p t io n Fa lt a d e m e m o ria p a ra cre a r u n o b je t o co n n e w
S EHEx c e p t io n Exce p ció n S HE d e l API Win 3 2
De s b o rd a m ie n t o d e la p ila , g e n e ra lm e n t e d e b id o a u n e xce s ivo n ú m e ro d e
S t a c k Ov e rflo w Ex c e p t io n
lla m a d a s re cu rre n t e s .
Ha o cu rrid o a lg u n a e xce p ció n a l in icia liza r lo s ca m p o s e s t á t ico s o e l
Ty p e I n iz ia liz a t io n Ex c e p t io n
co n s t ru ct o r e s t á t ico d e u n t ip o . En In n e rExce p t io n s e in d ica cu á l e s .
La n z a m ie n t o d e e x c e p c io n e s . I n s t ru c c ió n t h ro w
throw <objetoExcepciónALanzar>;
Ca p t u ra d e e x c e p c io n e s . I n s t ru c c ió n t ry
using System;
class PruebaExcepciones
{
static void Main()
{
A obj1 = new A();
obj1.F();
}
}
class A
{
public void F()
{
G();
}
try
<instrucciones>
catch (<excepción1>)
<tratamiento1>
catch (<excepción2>)
<tratamiento2>
...
finally
<instruccionesFinally>
using System;
class MiException:Exception {}
class Excepciones
{
public static void Main()
{
try
{
Console.WriteLine("En el try de Main()");
Método();
Console.WriteLine("Al final del try de Main()");
}
catch (MiException)
{
Console.WriteLine("En el catch de Main()");
}
finally
{
Console.WriteLine("finally de Main()");
}
}
En try de Main()
En try de Método()
En try de Método2()
finally de Método2
finally de Método
En catch de Main()
finally de Main()
Co m o s e p u e d e o b s e rva r, h a y m u ch o s WriteLine() q u e n u n ca s e e je cu t a n ya q u e e n cu e n t o s e la n za u n a
e xce p ció n s e s ig u e e je cu t a n d o t ra s la in s t ru cció n s ig u ie n t e a l try q u e la t ra t ó ( a u n q u e e je cu t a n d o a n t e s lo s
finally p e n d ie n t e s , co m o s e d e d u ce d e la s a lid a d e l e je m p lo ) De h e ch o , e l co m p ila d o r s e d a rá cu e n t a q u e la
in s t ru cció n s ig u ie n t e a l throw n u n ca s e e je cu t a rá e in fo rm a rá d e e llo co n u n m e n s a je d e a vis o .
catch(System.Exception <nombreObjecto>)
{
<tratamiento>
}
catch
{
<tratamiento>
}
throw;
I n s t ru c c io n e s d e s a lt o
La s in s t ru c c io n e s d e s a lt o p e rm it e n e je cu t a r va ria r e l o rd e n n o rm a l e n q u e s e e je cu t a n la s in s t ru ccio n e s d e u n
p ro g ra m a , q u e co n s is t e e n e je cu t a rla s u n a t ra s o t ra e n e l m is m o o rd e n e n q u e s e h u b ie s e n e s crit o e n e l fu e n t e .
En lo s s u b a p a rt a d o s d e e s t e e p íg ra fe s e d e s crib irá n cu á le s s o n la s in s t ru ccio n e s d e s a lt o in clu id a s e n C# :
I n s t ru c c ió n b re a k
break;
I n s t ru c c ió n c o n t in u e
continue;
I n s t ru c c ió n re t u rn
return <objetoRetorno>;
return;
I n s t ru c c ió n g o t o
goto <etiqueta>;
Co m o e n la m a yo ría d e lo s le n g u a je s , goto e s u n a in s t ru c c ió n m a ld it a cu yo u s o n o s e re co m ie n d a p o rq u e
d ificu lt a in n e ce s a ria m e n t e la le g ib ilid a d d e l có d ig o y s u e le s e r fá cil s im u la rla u s a n d o in s t ru ccio n e s it e ra t iva s y
s e le ct iva s co n la s co n d icio n e s a p ro p ia d a s . S in e m b a rg o , e n C# s e in clu ye p o rq u e p u e d e s e r e ficie n t e u s a rla s i s e
a n id a n m u ch a s in s t ru ccio n e s y p a ra re d u cir s u s e fe ct o s n e g a t ivo s s e le h a n im p u e s t o u n a s re s t riccio n e s :
● La e t iq u e t a in d ica d a n o p u e d a p e rt e n e ce r a u n b lo q u e d e in s t ru ccio n e s a n id a d o d e n t ro d e l
b lo q u e d e s d e e l q u e s e u s a e l g o t o n i q u e e t iq u e t e a in s t ru ccio n e s d e o t ro m é t o d o d ife re n t e a
a q u é l e n e l cu a l s e e n cu e n t ra e l g o t o q u e la re fe re n cia .
● Pa ra e t iq u e t a r u n a in s t ru cció n d e m o d o q u e p u e d a s e r d e s t in o d e u n s a lt o co n g o t o b a s t a
p re ce d e rla d e l n o m b re co n e l q u e s e la q u ie ra e t iq u e t a r s e g u id o d e d o s p u n t o s ( :) Po r
e je m p lo , e l s ig u ie n t e có d ig o d e m u e s t ra có m o u s a r goto y d e fin ir u n a e t iq u e t a :
using System;
class HolaMundoGoto
{
public static void Main(string[] args)
{
for (int i=0; i<args.Length; i++)
{
if (args[i] != "salir")
Console.WriteLine(args[i]);
else
goto fin:
}
fin: ;
}
}
Es t e p ro g ra m a d e e je m p lo lo q u e h a ce e s m o s t ra r p o r p a n t a lla t o d o s lo s a rg u m e n t o s q u e s e le p a s e n co m o
p a rá m e t ro s , a u n q u e s i a lg u n o fu e s e salir e n t o n ce s s e d e ja ría d e m o s t ra r a rg u m e n t o s y s e a b o rt a la e je cu ció n
d e la a p lica ció n . Vé a s e a d e m á s q u e e s t e e je m p lo p o n e d e m a n ifie s t o u n a d e la s u t ilid a d e s d e la in s t ru cció n n u la ,
ya q u e s i n o s e h u b ie s e e s crit o t ra s la e t iq u e t a fin e l p ro g ra m a n o co m p ila ría e n t a n t o q u e t o d a e t iq u e t a h a d e
p re ce d e r a a lg u n a in s t ru cció n ( a u n q u e s e a la in s t ru cció n n u la )
I n s t ru c c ió n t h ro w
throw <objetoExcepciónALanzar>;
En ca s o d e q u e n o s e in d iq u e n in g ú n <objetoExcepciónALanzar> s e re la n za rá e l q u e s e e s t u vie s e t ra t a n d o
e n e s e m o m e n t , a u n q u e e s t o s ó lo e s p o s ib le s i e l throw s e h a e s crit o d e n t ro d e l có d ig o d e t ra t a m ie n t o a s o cia d o
a a lg u n a clá u s u la catch.
Ot ra s in s t ru c c io n e s
I n s t ru c c io n e s c h e c k e d y u n c h e c k e d
checked
<instrucciones>
unchecked
<instrucciones>
El s ig u ie n t e có d ig o m u e s t ra u n e je m p lo d e có m o u s a r a m b a s in s t ru ccio n e s :
using System;
class Unchecked
{
static short x = 32767; // Valor maximo del tipo short
-32768
-32678
I n s t ru c c ió n lo c k
lock (<objeto>)
<instrucciones>
System.Threading.Monitor.Enter(<objeto>);
try
<instrucciones>
finally
{
System.Threading.Monitor.Exit(<objeto>);
}
class C
{
public static void F()
{
lock(typeof(C))
{
// ... Código al que se accede exclusivamente
}
}
}
I n s t ru c c ió n u s in g
interface IDisposable
{
void Dispose()
}
Ha y q u e t e n e r e n cu e n t a q u e la lla m a d a a Dispose() s e h a ce s e a cu a l s e a la ra zó n d e q u e s e d e je d e e je cu t a r
la s <instrucciones> Es d e cir, t a n t o s i s e h a p ro d u cid o u n a e xce p ció n co m o s i s e h a a ca b a d o s u e je cu ció n
n o rm a lm e n t e o co n u n a in s t ru cció n d e s a lt o , Dispose() e s s ie m p re lla m a d o . En re a lid a d u n a in s t ru cció n using
co m o :
Es t ra t a d a p o r e l co m p ila d o r co m o :
{
R1 r1 = new R1()
try
{
r1.F();
}
finally
{
if (r1!=null)
((IDisposable) r1).Dispose();
}
}
El s ig u ie n t e e je m p lo re s u m e có m o fu n cio n a la s e n t e n cia u s in g :
using System;
class A:IDisposable
{
public void Dispose()
{
Console.WriteLine("Llamado a Dispose() de {0}", Nombre);
}
string Nombre;
}
class Using
{
public static void Main()
{
A objk = new A("objk");
La s a lid a p o r p a n t a lla re s u lt a n t e d e e je cu t a r e s t e e je m p lo s e rá :
I n s t ru c c ió n fix e d
Es t a in s t ru cció n s ó lo t ie n e s e n t id o d e n t ro d e re g io n e s d e có d ig o in s e g u ro , co n ce p t o q u e s e t ra t a e n e l Te m a 1 8 :
Có d ig o in s e g u ro , p o r lo q u e s e rá a llí e s d o n d e s e e xp liq u e a fo n d o có m o u t iliza rla . Aq u í s ó lo d ire m o s q u e s u
s in t a xis d e u s o e s :
fixed(<tipoPunteros> <declaracionesPunterosAFijar>)
<instrucciones >
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 1 7 : At rib u t o s
❍ Co n ce p t o d e a t rib u t o
❍ Ut iliza ció n d e a t rib u t o s
❍ De fin ició n d e n u e vo s a t rib u t o s
❍ Le ct u ra d e a t rib u t o s e n t ie m p o d e e je cu ció n
❍ At rib u t o s d e co m p ila ció n
Te m a 1 7 : At rib u t o s
Co n c e p t o d e a t rib u t o
Ut iliz a c ió n d e a t rib u t o s
[<nombreAtributo>(<parámetros>)]
Lo s p a rá m e t ro s d e u n a t rib u t o p u e d e n s e r d e d o s t ip o s :
● P a rá m e t ro s s in n o m b re : S e u s a n d e fo rm a s im ila r a lo s p a rá m e t ro s d e lo s m é t o d o s , s ó lo q u e
n o p u e d e n co n t a r co n m o d ifica d o re s ref u out.
[<indicadorElemento>:<nombreAtributo> (<parámetros>)]
D e fin ic ió n d e n u e v o s a t rib u t o s
Es p e c ific a c ió n d e l n o m b re d e l a t rib u t o
using System;
class AyudaAttribute:Attribute
{}
[Ayuda] class A
{}
[AyudaAttribute] class B
{}
Es p e c ific a c ió n d e l u s o d e u n a t rib u t o
Ap a rt e d e e s t o s d o s p a rá m e t ro s , AttributeUsage t a m b ié n p u e d e co n t a r co n u n p a rá m e t ro o p cio n a l s in n o m b re
q u e in d iq u e a q u é t ip o s d e d e fin icio n e s p u e d e p re ce d e r. Po r d e fe ct o s e co n s id e ra q u e u n a t rib u t o p u e d e p re ce d e r a
Ta b la 9 : Va lo re s d e At t rib u t e Ta rg e t s
[AttributeUsage(AttributeTargets.Class | AttributeTargetes.Enum)]
class Ayuda:Attribute
{}
Es p e c ific a c ió n d e p a rá m e t ro s v á lid o s
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Enum)]
class Ayuda:Attribute
{
private string autor;
private string url;
{ url=URL; }
[Ayuda("http://www.josan.com/Clases/A.html")]
class A {}
Lo s t ip o s vá lid o s d e p a rá m e t ro s , t a n t o co n n o m b re co m o s in é l, q u e p u e d e t o m a r u n a t rib u t o s o n : cu a lq u ie r t ip o
b á s ico e xce p t o decimal y lo s t ip o s e n t e ro s s in s ig n o , cu a lq u ie r e n u m e ra ció n p ú b lica , System.Type o t a b la s
u n id im e n s io n a le s d e e le m e n t o s d e cu a lq u ie ra d e lo s a n t e rio re s t ip o s vá lid o s .
Le c t u ra d e a t rib u t o s e n t ie m p o d e e je c u c ió n
Pa ra o b t e n e r e l o b je t o Assembly q u e re p re s e n t a a l e n s a m b la d o a l q u e p e rt e n e zca e l có d ig o q u e s e e s t é e je cu t a n d o
s e u s a e l m é t o d o Assembly GetExecutingAssembly() d e la cla s e Assembly, q u e s e u s a t a l y co m o s e
m u e s t ra :
Un a ve z o b t e n id o e l o b je t o q u e re p re s e n t a a u n e n s a m b la d o p u e d e n o b t e n e rs e lo s o b je t o s Module q u e re p re s e n t a n
a lo s m ó d u lo s q u e lo fo rm a n a t ra vé s d e s u m é t o d o Module[] GetModules().
A p a rt ir d e l o b je t o Module q u e re p re s e n t a a u n m ó d u lo p u e d e o b t e n e rs e lo s o b je t o s Type q u e re p re s e n t a n a s u s
En lo re fe re n t e a la s p ro p ie d a d e s , e s p o s ib le o b t e n e r lo s o b je t o s MethodInfo q u e re p re s e n t a n a s u s b lo q u e s get y
set a t ra vé s d e lo s m é t o d o s MethodInfo GetSetMethod() y MethodInfo GetSetMethod() d e lo s o b je t o s
PropertyInfo q u e la s re p re s e n t a n . Ad e m á s , p a ra o b t e n e r lo s o b je t o s re fle xivo s q u e re p re s e n t e n a lo s ín d ice s d e
lo s in d iza d o re s t a m b ié n s e d is p o n e d e u n m é t o d o ParamterInfo[] GetIndexParameters()
A co n t in u a ció n s e m u e s t ra u n p ro g ra m a d e e je m p lo q u e lo q u e h a ce e s m o s t ra r p o r p a n t a lla e l n o m b re d e t o d o s lo s
a t rib u t o s q u e e n é l s e h a ya n d e fin id o :
using System.Reflection;
using System;
[assembly: EjemploEnsamblado]
[module: EjemploModulo]
[AttributeUsage(AttributeTargets.Method)]
class EjemploMétodo:Attribute
{}
[AttributeUsage(AttributeTargets.Assembly)]
class EjemploEnsamblado:Attribute
{}
[AttributeUsage(AttributeTargets.Module)]
class EjemploModulo:Attribute
{}
[AttributeUsage(AttributeTargets.Class)]
class EjemploTipo:Attribute
{}
[AttributeUsage(AttributeTargets.Field)]
class EjemploCampo:Attribute
{}
[EjemploTipo]
class A
{
public static void Main()
{
Assembly ensamblado = Assembly.GetExecutingAssembly();
ENSAMBLADO: EjemploEnsamblado
ENSAMBLADO: System.Diagnostics.DebuggableAttribute
MODULO EjemploModulo
TIPO: System.AttributeUsageAttribute
TIPO: System.AttributeUsageAttribute
TIPO: System.AttributeUsageAttribute
TIPO: System.AttributeUsageAttribute
TIPO: System.AttributeUsageAttribute
TIPO: EjemploTipo
METODO: EjemploMétodo
At rib u t o s d e c o m p ila c ió n
At rib u t o S y s t e m . At t rib u t e Us a g e
At rib u t o S y s t e m . Ob s o le t e
● Un p rim e r p a rá m e t ro d e t ip o string q u e co n t e n g a u n a ca d e n a co n u n m e n s a je a m o s t ra r cu a n d o
a l co m p ila r s e d e t e ct e q u e s e h a u s a d o e l e le m e n t o o b s o le t o .
● Un s e g u n d o p a rá m e t ro d e t ip o bool q u e in d iq u e s i s e h a d e p ro d u cir u n a vis o o u n e rro r cu a n d o
s e d e t e ct e e l u s o d e l e le m e n t o o b s o le t o . Po r d e fe ct o s e m u e s t ra u n a vis o , p e ro s i s e le d a e l
va lo r true a e s t e p a rá m e t ro s e p ro d u cirá u n e rro r.
El s ig u ie n t e e je m p lo m u e s t ra co m o u s a r e s t e a t rib u t o :
using System;
class Obsoleta
{
[Obsolete("No usar f(), que está obsoleto.", true)]
public static void f()
{}
At rib u t o S y s t e m . D ia g n o s t ic s . Co n d it io n a l
h a n d e co m p ila r o n o . Pu e d e u s a rs e m ú lt ip le s ve ce s p re fija n d o a u n m is m o m é t o d o y t o m a u n p a rá m e t ro s in
n o m b re d e t ip o string. S ó lo s e co m p ila rá n a q u e lla s lla m a d a s a l m é t o d o t a le s q u e e n e l m o m e n t o d e h a ce rla s e s t é
d e fin id a a lg u n a d ire ct iva d e p re p ro ce s a d o co n e l m is m o n o m b re q u e e l p a rá m e t ro d e a lg u n o d e lo s a t rib u t o s
Conditional q u e p re fije n la d e fin ició n d e e s e m é t o d o .
El s ig u ie n t e e je m p lo m u e s t ra có m o u s a r Co n d it io n a l:
using System;
using System.Diagnostics;
class Condicional
{
[Conditional("DEBUG")]
public static void F()
{ Console.WriteLine("Ff()"); }
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 1 8 : Có d ig o in s e g u ro
❍ Co n ce p t o d e có d ig o in s e g u ro
❍ Co m p ila ció n d e có d ig o s in s e g u ro s
❍ Ma rca ció n d e có d ig o s in s e g u ro s
❍ De fin ició n d e p u n t e ro s
❍ Ma n ip u la ció n d e p u n t e ro s
❍ Op e ra d o re s re la cio n a d o s co n có d ig o in s e g u ro
❍ Fija ció n d e va ria b le s a p u n t a d a s
Te m a 1 8 : Có d ig o in s e g u ro
Co n c e p t o d e c ó d ig o in s e g u ro
Có d ig o in s e g u ro e s t o d o a q u é l fra g m e n t o d e có d ig o e n C# d e n t ro d e l cu a l e s p o s ib le h a ce r u s o d e p u n t e ro s .
Co m p ila c ió n d e c ó d ig o s in s e g u ro s
códigoInseguro(5,23): error CS0277: unsafe code may only appear if compiling with /unsafe
Ma rc a c ió n d e c ó d ig o s in s e g u ro s
unsafe <instrucciones>
struct PuntoInseguro
{
public unsafe int *X; // No es válido hacer public unsafe int *X, Y;
public unsafe int *Y; // Tampoco lo es hacer public unsafe int *X, *Y;
}
D e fin ic ió n d e p u n t e ro s
<tipo> * <nombrePuntero>;
int * a;
int*[] t;
Ha y u n t ip o e s p e cia l d e p u n t e ro q u e e s ca p a z d e a lm a ce n a r re fe re n cia s a o b je t o s d e cu a lq u ie r t ip o . És t o s p u n t e ro s d e
d e cla ra in d ica n d o void co m o <tipo>. Po r e je m p lo :
void * punteroACualquierCosa;
Ha y q u e t e n e r e n cu e n t a q u e e n re a lid a d lo q u e in d ica e l t ip o q u e s e d é a u n p u n t e ro e s cu á l e s e l t ip o d e o b je t o s q u e
s e h a d e co n s id e ra r q u e s e a lm a ce n a n e n la d ire cció n d e m e m o ria a lm a ce n a d a p o r e l p u n t e ro . S i s e le d a e l va lo r
void lo q u e s e e s t á d icie n d o e s q u e n o s e d e s e a q u e s e co n s id e re q u e e l p u n t e ro a p u n t a a n in g ú n t ip o e s p e cífico d e
o b je t o . Es d e cir, n o s e e s t á d a n d o in fo rm a ció n s o b re e l t ip o a p u n t a d o .
El re co le ct o r d e b a s u ra n o t ie n e e n cu e n t a lo s d a t o s a lo s q u e s e re fe re n cie co n p u n t e ro s , p u e s h a d e co n o ce r cu á l e s
e l o b je t o a l re fe re n cia d o p o r ca d a va ria b le y u n p u n t e ro e n re a lid a d n o t ie n e p o rq u é a lm a ce n a r re fe re n cia s a o b je t o s
d e n in g ú n t ip o e n co n cre t o . Po r e je m p lo , p u e d e n t e n e rs e p u n t e ro s int * q u e e n re a lid a d a p u n t e n a o b je t o char, o
p u n t e ro s void * q u e n o a lm a ce n e n in fo rm a ció n s o b re e l t ip o d e o b je t o a l q u e d e b e ría co n s id e ra rs e q u e a p u n t a n , o
p u n t e ro s q u e a p u n t e a d ire ccio n e s d o n d e n o h a ya n o b je t o s , e t c.
Co m o e l re co le ct o r d e b a s u ra n o t ra b a ja co n p u n t e ro s , n o e s p o s ib le d e fin ir p u n t e ro s d e t ip o s q u e s e a lm a ce n e n e n
m e m o ria d in á m ica o co n t e n g a n m ie m b ro s q u e s e a lm a ce n e n e n m e m o ria d in á m ica , ya q u e e n t o n ce s p o d ría o cu rrir
q u e u n o b je t o s ó lo re fe re n cia d o a t ra vé s d e p u n t e ro s s e a d e s t ru id o p o r co n s id e a r e l re co le ct o r q u e n a d ie le
re fe re n cia b a . Po r e llo , s ó lo e s vá lid o d e fin ir p u n t e ro s d e t ip o s cu yo s o b je t o s s e p u e d a n a lm a ce n a r co m p le t a m e n t e e n
p ila , p u e s la vid a d e e s t o s o b je t o s n o e s t á co n t ro la d a p o r e l re co le ct o r d e b a s u ra s in o q u e s e d e s t ru ye n cu a n d o s e
a b a n d o n a e l á m b it o d o n d e fu e ro n d e fin id o s .
int ** punteroApuntero;
Ma n ip u la c ió n d e p u n t e ro s
int x =10;
int * px = &x;
int x = 10;
int px = &x;
int px2 = px; // px y px2 apuntan al objeto almacenado en x
Console.WriteLine( px == px2); // Imprime por pantalla True
Ac c e s o a c o n t e n id o d e p u n t e ro . Op e ra d o r *
int x = 10;
int * px= &x;
Console.WriteLine(*px);
int * px = null;
Console.WriteLine(*px); // Produce una NullReferenceException
Ac c e s o a m ie m b ro d e c o n t e n id o d e p u n t e ro . Op e ra d o r - >
(*objeto).F();
objeto->f();
Co n v e rs io n e s d e p u n t e ro s
De t o d o lo vis t o h a s t a a h o ra p a re ce q u e n o t ie n e m u ch o s e n t id o e l u s o d e p u n t e ro s d e t ip o void * Pu e s b ie n , u n a
u t ilid a d d e e s t e t ip o d e p u n t e ro s e s q u e p u e d e n u s a rs e co m o a lm a cé n d e p u n t e ro s d e cu a lq u ie r o t ro t ip o q u e lu e g o
p o d rá n s e r re cu p e ra d o s a s u t ip o o rig in a l u s a n d o e l o p e ra d o r d e co n ve rs ió n e xp lícit a . Es d e cir, ig u a l q u e lo s o b je t o s d e
t ip o object p u e d e n a lm a ce n a r im p lícit a m e n t e o b je t o s d e cu a lq u ie r t ip o , lo s p u n t e ro s void * p u e d e n a lm a ce n a r
p u n t e ro s d e cu a lq u ie r t ip o y s o n ú t ile s p a ra la e s crit u ra d e m é t o d o s q u e p u e d a n a ce p t a r p a rá m e t ro s d e cu a lq u ie r t ip o
d e p u n t e ro .
char c = 'A';
char* pc = &c;
void* pv = pc;
int* pi = (int*)pv;
int i = *pi; // Almacena en 16 bits del char de pv
// + otros 16 indeterminados
Console.WriteLine(i);
*pi = 123456; // Machaca los 32 bits apuntados por pi
En e s t e có d ig o pi e s u n p u n t e ro a u n o b je t o d e t ip o int ( 3 2 b it s ) , p e ro e n re a lid a d e l o b je t o a l q u e a p u n t a e s d e t ip o
char ( 1 6 b it s ) , q u e e s m á s p e q u e ñ o . El va lo r q u e s e a lm a ce n e e n i e s e n p rin cip io in d e fin id o , p u e s d e p e n d e d e lo q u e
h u b ie s e e n lo s 1 6 b it s e xt ra s re s u lt a n t e s d e t ra t a r pv co m o p u n t e ro a int cu a n d o e n re a lid a d a p u n t a b a a u n char.
De l m is m o m o d o , co n ve rs io n e s e n t re p u n t e ro s p u e d e n t e rm in a r p ro d u cie n d o q u e u n p u n t e ro a p u n t e a u n o b je t o d e
m a yo r t a m a ñ o q u e lo s o b je t o s d e l t ip o d e l p u n t e ro . En e s t o s ca s o s , e l p u n t e ro a p u n t a ría a lo s b it s m e n o s s ig n ifica t ivo s
d e l o b je t o a p u n t a d o .
Ta m b ié n e s p o s ib le re a liza r co n ve rs io n e s e n t re p u n t e ro s y t ip o s b á s ico s e n t e ro s . La co n ve rs ió n d e u n p u n t e ro e n u n
t ip o e n t e ro d e vu e lve la d ire cció n d e m e m o ria a p u n t a d a p o r e l m is m o . Po r e je m p lo , e l s ig u ie n t e có d ig o m u e s t ra p o r
int x = 10;
int *px = &10;
Console.WriteLine((int) px);
Po r s u p a rt e , co n ve rt ir cu a lq u ie r va lo r e n t e ro e n u n p u n t e ro t ie n e e l e fe ct o d e d e vo lve r u n p u n t e ro q u e a p u n t e a la
d ire cció n d e m e m o ria in d ica d a p o r e s e n ú m e ro . Po r e je m p lo , e l s ig u ie n t e có d ig o h a ce q u e px a p u n t e a la d ire cció n
1 0 2 9 y lu e g o im p rim e p o r p a n t a lla la d ire cció n d e m e m o ria a p u n t a d a p o r px ( q u e s e rá 1 0 2 9 ) :
using System;
class AccesoInválido
{
public unsafe static void Main()
{
int * px = (int *) 100;
Console.Write(*px); // Se lanza NullReferenceException
}
}
Arit m é t ic a d e p u n t e ro s
Lo s p u n t e ro s s e s u e le n u s a r p a ra re co rre r t a b la s d e e le m e n t o s s in n e ce s id a d d e t e n e r q u e co m p ro b a rs e q u e e l ín d ice
a l q u e s e a cce d e e n ca d a m o m e n t o s e e n cu e n t ra d e n t ro d e lo s lím it e s d e la t a b la . Po r e llo , lo s o p e ra d o re s a rit m é t ico s
d e fin id o s p a ra lo s p u n t e ro s e s t á n o rie n t a d o s a fa cilit a r e s t e t ip o d e re co rrid o s .
● + y -: Pe rm it e n s o lu cio n a r e l p ro b le m a d e ++ y -- a n t e s co m e n t a d o d e u n a fo rm a m á s có m o d a
b a s a d a e n s u m a r o re s t a r u n cie rt o e n t e ro a lo s p u n t e ro s . + d e vu e lve la d ire cció n re s u lt a n t e d e
s u m a r a la d ire cció n a lm a ce n a d a e n e l p u n t e ro s o b re e l q u e s e a p lica e l t a m a ñ o d e l t ip o d e d ich o
p u n t e ro t a n t a s ve ce s co m o in d iq u e e l e n t e ro s u m a d o . - t ie n e e l m is m o s ig n ifica d o p e ro re s t a n d o
d ich a ca n t id a d e n ve z d e s u m a rla . Po r e je m p lo , u s a n d o + e l b u cle a n t e rio r p o d ría re e s crib ris e a s í:
Op e ra d o re s re la c io n a d o s c o n c ó d ig o in s e g u ro
Op e ra d o r s iz e o f. Ob t e n c ió n d e t a m a ñ o d e t ip o
sizeof(<tipo>)
Tip o s Re s u lt a d o
s b yt e , b yt e , b o o l 1
s h o rt , u s h o rt , ch a r 2
in t , u in t , flo a t 4
lo n g , u lo n g , d o u b le 8
Ta b la 1 0 : Re s u lt a d o s d e s ize o f p a ra t ip o s b á s ico s
stackalloc <tipo>[<número>]
S in e m b a rg o , n o s e ría vá lid o h a ce r:
int * pt;
pt = stackalloc int[100]; // ERROR: Sólo puede usarse stackalloc en declaraciones
int[] tabla;
int * pt = stackalloc int[100];
tabla = *pt; // ERROR: El contenido de pt es un int, no una tabla (int[])
Console.WriteLine(pt->Length); // ERROR: pt no apunta a una tabla
S in e m b a rg o , g ra cia s a q u e co m o ya s e h a co m e n t a d o e n e s t e t e m a e l o p e ra d o r [] e s t á re d e fin id o p a ra t ra b a ja r co n
p u n t e ro s , p o d e m o s u s a rlo p a ra a cce d e r a lo s d ife re n t e s o b je t o s a lm a ce n a d o s e n la s re g io n e s re s e rva d a s co n
stackalloc co m o s i fu e s e n t a b la s . Po r e je m p lo , e s t e có d ig o g u a rd a e n p ila lo s 1 0 0 p rim e ro s e n t e ro s y lu e g o lo s
im p rim e :
class Stackalloc
{
public unsafe static void Main()
{
int * pt = stackalloc int[100];
for (int i=0; i<100; i++)
pt[i] = i;
for(int i=0; i<100; i++)
System.Console.WriteLine(pt[i]);
}
}
Fija c ió n d e v a ria b le s a p u n t a d a s
Au n q u e u n p u n t e ro s ó lo p u e d e a p u n t a r a d a t o s d e t ip o s q u e p u e d a n a lm a ce n a rs e co m p le t a m e n t e e n p ila ( o s e a , q u e
n o s e a n n i o b je t o s d e t ip o s re fe re n cia n i e s t ru ct u ra s co n m ie m b ro s d e t ip o s re fe re n cia ) , n a d a g a ra n t iza q u e lo s o b je t o s
a p u n t a d o e n ca d a m o m e n t o e s t é n a lm a ce n a d o s e n p ila . Po r e je m p lo , la s va ria b le s e s t á t ica s d e t ip o int o lo s
e le m e n t o s d e u n a t a b la d e t ip o int s e a lm a ce n a n e n m e m o ria d in á m ica a ú n cu a n d o s o n o b je t o s a lo s q u e s e le s
p u e d e a p u n t a r co n p u n t e ro s .
fixed(<tipo> <declaraciones>)
<instrucciones>
class CopiaInsegura
{
public unsafe static void Main()
{
int[] tOrigen = new int[100];
int[] tDestino = new int[100];
fixed (int * pOrigen=tOrigen, pDestino=tDestino)
{
for (int i=0; i<100; i++)
pOrigen[i] = pDestino[i];
}
}
}
Al ig u a l q u e t a b la s , t a m b ié n p u e d e u s a rs e fixed p a ra re co rre r ca d e n a s . En e s t e ca s o lo q u e h a y q u e h a ce r e s
class CadenaInsegura
{
public unsafe static void Main()
{
string s="Hola";
La s a lid a p o r p a n t a lla d e e s t e ú lt im o p ro g ra m a e s :
Hola
AAAA
● El re co le ct o r d e b a s u ra e s t á o p t im iza d o p a ra t ra b a ja r co n m e m o ria co m p a ct a d a , p u e s s i t o d o s lo s
o b je t o s s e a lm a ce n a n co n s e cu t iva m e n t e e n m e m o ria d in á m ica cre a r u n o n u e vo e s t a n s e n cillo
co m o a ñ a d irlo t ra s e l ú lt im o . S in e m b a rg o , fixed ro m p e e s t a co n s e cu t ivid a d y la cre a ció n d e
o b je t o s e n m e m o ria d in á m ica d e n t ro d e e s t e t ip o d e in s t ru ccio n e s e s m á s le n t a p o rq u e h a y q u e
b u s ca r h u e co s lib re s .
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n C#
En e s t a p á g in a :
● Te m a 1 9 : Do cu m e n t a ció n XML
❍ Co n ce p t o y u t ilid a d d e la d o cu m e n t a ció n XML
❍ In t ro d u cció n a XML
❍ Co m e n t a rio s d e d o cu m e n t a ció n XML
❍ Et iq u e t a s re co m e n d a d a s p a ra d o cu m e n t a ció n XML
❍ Ge n e ra ció n d e d o cu m e n t a ció n XML
❍ Es t ru ct u ra d e la d o cu m e n t a ció n XML
❍ S e p a ra ció n e n t re d o cu m e n t a ció n XML y có d ig o fu e n t e
Te m a 1 9 : D o c u m e n t a c ió n XML
Co n c e p t o y u t ilid a d d e la d o c u m e n t a c ió n XML
El h e ch o d e q u e la d o cu m e n t a ció n s e g e n e re a p a rt ir d e lo s fu e n t e s p e rm it e e vit a r q u e s e t e n g a q u e t ra b a ja r co n d o s
t ip o s d e d o cu m e n t o s p o r s e p a ra d o ( fu e n t e s y d o cu m e n t a ció n ) q u e d e b a n a ct u a liza rs e s im u lt á n e a m e n t e p a ra e vit a r
in co s is t e n cia s e n t re e llo s d e riva d a s d e q u e e vo lu cio n e n d e m a n e ra s e p a ra d a ya s e a p o r p e re za o p o r e rro r.
I n t ro d u c c ió n a XML
En <etiqueta> s e in d ica cu á l e s e l n o m b re d e la e t iq u e t a a u s a r. Po r e je m p lo :
Pe ro lo q u e s í s e ría vá lid o e s :
Ta m b ié n e s p o s ib le m e zcla r t e xt o y o t ra s e t iq u e t a s e n <contenido>. Po r e je m p lo :
● XML e s u n le n g u a je s e n s ib le a m a yú s cu la s , p o r lo q u e s i u n a e t iq u e t a s e a b re co n u n a cie rt a
ca p it a liza ció n , a la h o ra d e ce rra rla h a b rá q u e u s a r e xa ct a m e n t e la m is m a .
● Es p o s ib le u s a r la s ig u ie n t e s in t a xis a b re via d a p a ra e s crib ir e t iq u e t a s s in <contenido>:
<<etiqueta>/>
Po r e je m p lo :
<<EtiquetaSinContenidoDeEjemplo>/>
Ca rá c t e r S e c u e n c ia d e e s c a p e Un ic o d e S e c u e n c ia d e e s c a p e e s p e c ia l
Co m e n t a rio s d e d o c u m e n t a c ió n XML
S in t a x is g e n e ra l
/// <textoXML>
El a t rib u t o c re f
● S i e s u n c a m p o , p ro p ie d a d , e v e n t o o t ip o in t e rn o , s u n o m b re .
● S i e s u n m é t o d o , s u n o m b re s e g u id o d e lo s n o m b re s co m p le t o s d e lo s t ip o s d e s u s p a rá m e t ro s
s e p a ra d o s m e d ia n t e co m a s y e n t re p a ré n t e s is . Es t o s n o m b re s d e t ip o s d e p a rá m e t ro s lle va n u n
ca rá ct e r @ co n ca t e n d o a l fin a l e n lo s p a rá m e t ro s ref u out, u n ca rá ct e r * a l fin a l e n lo s q u e s e a n
d e t ip o s p u n t e ro s , u n s ím b o lo [] p o r ca d a n ive l d e a n id a ció n a l fin a l d e lo s q u e s e a n t a b la s
u n id im e n s io n a le s , y u n a e s t ru ct u ra d e la fo rm a [0:,0:] a l fin a l d e lo s q u e s e a n t a b la s
b id im e n s io n a le s ( p a ra t a b la s d e m á s d im e n s io n e s s im p le m e n t e s e iría n a ñ a d ie n d o lo s b lo q u e s ,0:
a p ro p ia d o s ) .
● S i e s u n in d iz a d o r, e l id e n t ifica d o r Item s e g u id o d e la lis t a d e t ip o s d e s u s ín d ice s co m o s i d e lo s
p a rá m e t ro s d e u n m é t o d o s e t ra t a s e
● S i e s u n c o n s t ru c t o r d e o b je t o , e l id e n t ifica d o r #ctor s e g u id o d e la lis t a d e t ip o s d e s u s
p a rá m e t ro s co m o s i d e u n m é t o d o n o rm a l s e t ra t a s e . S i e l co n s t ru ct o r fu e s e d e t ip o s e n t o n ce s e l
Op e ra d o r I d e n t ific a d o r
+ o p _ Ad d it io n
- o p _ S u b s t ra c t io n
* o p _ Mu lt ip ly
/ o p _ D iv is io n
% o p _ Mo d u lu s
< o p _ Le s s Th a n
> o p _ Gre a t e rTh a n
>= o p _ Gre a t e rTh a n OrEq u a l
<= o p _ Lo w e rTh a n OrEq u a l
== o p _ Eq u a lit y
!= o p _ I n e q u a lit y
! o p _ Lo g ic a lN o t
Op e ra d o r I d e n t ific a d o r
& o p _ Bit w is e An d
| o p _ Bit w is e Or
^ o p _ Ex c lu s iv e Or
~ o p _ On e s Co m p le m e n t
<< o p _ Le ft S h ift
>> o p _ Rig h t S h ift
t ru e o p _ Tru e
fa ls e o p _ Fa ls e
++ o p _ I n c re m e n t
-- o p _ D e c re m e n t
Co n ve rs ió n e xp lícit a Op _ Ex p lic t
Co n ve rs ió n im p lícit a Op _ I m p lic it
Ta b la 1 2 : No m b re s d a d o s a o p e ra d o re s e n d o cu m e n t a ció n XML
// cref="Espacio"
namespace Espacio
{
// cref="Espacio.Clase"
class Clase
{
// cref="Espacio.Clase.Campo"
int Campo;
// cref="Espacio.Clase.Propiedad"
int Propiedad
{ set {} }
// cref="Espacio.Clase.EstructuraInterna"
struct EstructuraInterna
{}
// cref="Espacio.Clase.DelegadoInterno"
public delegate int DelegadoInterno(string s, float f);
// cref ="Espacio.Clase.Evento"
public event DelegadoInterno Evento;
// cref="Espacio.Clase.Metodo(System.Int32, System.Int32@,
// System.Int32*, System.Int32@,
// System.Int32[][], System.Int32[0:, 0:, 0:])"
int Metodo(int a, out int b, int * c, ref d, int[][] e, int[,,] f)
{return 1;}
// cref="Espacio.Clase.Item(System.String)"
int this[string s]
{ set {} }
// cref="Espacio.Clase.#ctor"
Clase(int a)
{}
// cref="Espacio.Clase.#cctor"
static Clase(int a)
{}
// cref="Espacio.Clase.Finalize"
~X()
{}
// cref="Espacio.Clase.op_Addition(Espacio.Clase, Espacio.Clase)"
public static int operator +(Clase operando1, Clase operando2)
{ return 1; }
// cref="Espacio.Clase.op_Explicit (Espacio.Clase)~System.Int32"
public static explicit operator int(Clase fuente)
{ return 1; }
}
}
Et iq u e t a s re c o m e n d a d a s p a ra d o c u m e n t a c ió n XML
En lo s s ig u ie n t e s e p íg ra fe s s e e xp lica n e s t a s e t iq u e t a s re co m e n d a d a s a g ru p á n d o la s s e g ú n s u u t ilid a d . To d a s s o n
o p cio n a le s , y n o in clu irla s s ó lo t ie n e e l e fe ct o d e q u e n o e n la d o cu m e n t a ció n re s u lt a n t e n o s e g e n e ra ría n la s
Et iq u e t a s d e u s o g e n é ric o
Co m o co n <seealso>, s i u n m ie m b ro h a d e d is p o n e r va rio s t ip o s d e p e rm is o s p u e d e d o cu m e n t a rs e s u
d e fin ició n co n t a n t a s e t iq u e t a s <permission> co m o s e a n e ce s a rio .
Et iq u e t a s re la t iv a s a m é t o d o s
Al g e n e ra rs e la d o cu m e n t a ció n s e co m p ru e b a s i e l m é t o d o d o cu m e n t a d o d is p o n e d e a lg ú n p a rá m e t ro co n e l
n o m b re in d ica d o e n name y, co m o o cu rre co n cref, s i n o fu e s e a s í s e g e n e ra ría u n m e n s a je d e a vis o
in fo rm a n d o d e e llo .
/// <summary>
/// Método que muestra por pantalla un texto con un determinado color
/// </summary>
/// <param name="texto"> Texto a mostrar </param>
/// <param name="color">
/// Color con el que mostrar el <paramref name="texto"/> indicado
/// </param>
/// <summary>
/// Método que muestra por pantalla un texto con un determinado color
/// </summary>
/// <param name="texto"> Texto a mostrar </param>
/// <param name="color">
/// Color con el que mostrar el <paramref name="texto"/> indicado
/// </param>
/// <returns> Indica si el método se ha ejecutado con éxito o no </summary>
Et iq u e t a s re la t iv a s a p ro p ie d a d e s
El u s o m á s h a b it u a l d e u n a p ro p ie d a d co n s is t e e n co n t ro la r la fo rm a e n q u e s e a cce d e a u n ca m p o p riva d o , p o r lo
q u e e s t a s e co m p o rt a co m o s i a lm a ce n a s e u n va lo r. Me d ia n t e e l co n t e n id o d e la e t iq u e t a <value> e s p o s ib le
d e s crib ir e l s ig n ifica d o d e e s e va lo r:
Et iq u e t a s re la t iv a s a e x c e p c io n e s
Et iq u e t a s re la t iv a s a fo rm a t o
u n a e t iq u e t a s in co n t e n id o e n la q u e e l d e s t in o d e l e n la ce e s la d o cu m e n t a ció n d e l m ie m b ro cu yo
n o m b re co m p le t o s e in d ica e n s u a t rib u t o cref. Es e n o m b re e s t a m b ié n e l t e xt o q u e la s h o ja s d e
e s t ilo s u e ln m o s t ra r p a ra re p re s e n t a r p o r p a n t a lla e l e n la ce , p o r lo q u e lo s u s o s d e e s t a e t iq u e t a
s u e le n s e r d e la fo rm a :
/// <summary>
/// Muestra por la salida estándar el mensaje ¡Hola!.
/// Si no sabe como se escribe en pantalla puede consultar la
/// documentación del método
/// <see cref="System.Console.WriteLine"/>.
/// </summary>
public static void Saluda()
{
Console.WriteLine("¡Hola!");
}
/// <example>
/// Este ejemplo muestra cómo llamar al método
/// <c>Cumple()</c> de esta clase:
/// <code>
/// Persona p = new Persona(...);
/// p.Cumple();
/// </code>
/// </example>
/// <remarks>
/// <para>
/// Primer párrafo de la descripción del miembro...
/// </para>
/// <para>
/// Segundo párrafo de la descripción del miembro...
/// </para>
/// </remarks>
❍ n u m b e r: In d ica q u e s e t ra t a d e u n a lis t a n u m e ra d a
❍ t a b le : In d ica q u e s e t ra t a d e u n a t a b la
El co n t e n id o d e <list> d e p e n d e rá d e l t ip o d e e s t ru ct u ra re p re s e n t a d o e n ca d a ca s o :
❍ S i s e t ra t a d e u n a lis t a n o rm a l - ya s e a n u m e ra d a o n o n u m e ra d a - s u co n t e n id o s e rá u n a
e t iq u e t a <item> p o r ca d a e le m e n t o d e la lis t a , y ca d a e t iq u e t a d e e s t e t ip o co n t e n d rá u n a
e t iq u e t a <description> co n e l t e xt o co rre s p o n d ie n t e a e s e e le m e n t o . Po r e je m p lo :
Ge n e ra c ió n d e d o c u m e n t a c ió n XML
Ge n e ra c ió n a t ra v é s d e l c o m p ila d o r e n lín e a d e c o m a n d o s
Ge n e ra c ió n a t ra v é s d e Vis u a l S t u d io . N ET
Es t ru c t u ra d e la d o c u m e n t a c ió n XML
<?xml version="1.0"?>
<doc>
<members>
</members>
</doc>
<?xml version="1.0"?>
<doc>
<assembly>
<name>Persona</name>
</assembly>
<members>
</members>
</doc>
S i a h o ra le a ñ a d im o s co m e n t a rio s d e d o cu m e n t a ció n ve re m o s q u e e l co n t e n id o d e e s t o s s e in s e rt a d e n t ro d e la
e t iq u e t a <members>, e n u n a e t iq u e t a <member> e s p e cífica p a ra ca d a m ie m b ro co n co m e n t a rio s d e d o cu m e n t a ció n .
Po r e je m p lo , d a d o e l fu e n t e :
/// <summary>
/// Clase de ejemplo de cómo escribir documentacion XML
/// </summary>
class A
{
/// <summary>
/// Método principal de ejemplo perteneciente a clase <see cref="A"/>
/// </summary>
/// <remarks>
/// No hace nada
/// </remarks>
static void Main()
{}
}
<?xml version="1.0"?>
<doc>
<assembly>
<name>A</name>
</assembly>
<members>
<member name="T:A">
<summary>
Clase de ejemplo de cómo escribir documentacion XML
</summary>
</member>
<member name="M:A.Main">
<summary>
Método principal de ejemplo perteneciente a clase <see cref="T:A"/>
</summary>
<remarks>
No hace nada
</remarks>
</member>
</members>
</doc>
<indicadorElemento>:<nombreCompletamenteCalificado>
El <indicadorElemento> e s s im p le m e n t e u n ca rá ct e r q u e in d ica q u é t ip o d e e le m e n t o s e d o cu m e n t a d e n t ro d e la
e t iq u e t a <member>. Pu e d e t o m a r e s t o s va lo re s :
I n d ic a d o r d e t ip o d e e le m e n t o Tip o d e e le m e n t o in d ic a d o
T Tip o d e d a t o
F Ca m p o
P Pro p ie d a d o in d iza d o r
M Mé t o d o ( in clu id o s o p e ra d o re s y co n t ru ct o re s )
E Eve n t o
In d ica d o r d e t ip o d e e le m e n t o Tip o d e e le m e n t o in d ic a d o
N Es p a cio d e n o m b re s
! Nin g u n o . S e g e n e ra cu a n d o e l m ie m b ro in d ica d o e n cref n o e xis t e .
S e p a ra c ió n e n t re d o c u m e n t a c ió n XML y c ó d ig o fu e n t e
<Miembros>
...
<Miembro name="A">
<remarks>
Ejemplo de inclusión de documentación XML externa
</remarks>
<example>
Para crear un objeto de esta clase usar:
<code>
A obj = new A();
</code>
</example>
</Miembro>
...
</Miembros>
/// <remarks>
/// Ejemplo de inclusión de documentación XML externa
/// </remarks>
/// <example>
/// Para crear un objeto de esta clase usar:
/// <code>
/// A obj = new A();
/// </code>
/// </example>
class A
{}
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e Nuestras zonas
p ro g ra m a c ió n
C#
En e s t a p á g in a :
● Te m a 2 0 : El co m p ila d o r d e C# d e Micro s o ft
❍ In t ro d u cció n
❍ S in t a xis g e n e ra l d e u s o d e l co m p ila d o r
❍ Op cio n e s d e co m p ila ció n
❍ Acce s o a l co m p ila d o r d e s d e Vis u a l S t u d io . NET
Te m a 2 0 : El c o m p ila d o r d e C# d e Mic ro s o ft
I n t ro d u c c ió n
S in t a x is g e n e ra l d e u s o d e l c o m p ila d o r
lla m a d a co m o :
<indicadorOpción><opción>
El <indicadorOpción> p u e d e s e r e l ca rá ct e r / o e l ca rá ct e r -, a u n q u e e n a d e la n t e s ó lo h a re m o s u s o d e /.
Re s p e ct o a <opción>, p u e d e n in d ica rs e d o s t ip o s d e o p cio n e s :
<nombreFlag><activado?>
<nombreFlag>:<valores>
Au n q u e e n lo s e je m p lo s m o s t ra d o s s ie m p re s e h a n in clu id o la s o p cio n e s a n t e s q u e lo s n o m b re s d e lo s
fu e n t e s a co m p ila r, e n re a lid a d e llo n o t ie n e p o rq u é s e r a s í y s e p u e d e n m e zcla r lib re m e n t e y e n cu a lq u ie r
o rd e n o p cio n e s y n o m b re s d e fu e n t e s a co m p ila r ( s a lvo e xce p cio n e s q u e e n s u m o m e n t o s e e xp lica rá n )
Op c io n e s d e c o m p ila c ió n
Op c io n e s b á s ic a s
● / t a rg e t ( / t ) : Po r d e fe ct o a l co m p ila r s e g e n e ra u n e je cu t a b le cu ya e je cu ció n p ro vo ca la
a p e rt u ra d e u n a ve n t a n a d e co n s o la s i a l la n za rlo n o h u b ie s e n in g u n a a b ie rt a . Es t o p u e d e
ca m b ia rs e d a n d o u n o d e lo s va lo re s in d ica d o s e n la Ta b la 1 5 a e s t a o p ció n :
Va lo r Tip o d e fic h e ro a g e n e ra r
e x e ó n in g u n o Eje cu t a b le co n ve n t a n a d e co n s o la ( va lo r p o r d e fe ct o )
Eje cu t a b le s in ve n t a n a d e co n s o la . Út il p a ra e s crib ir a p lica cio n e s d e ve n t a n a s o s in
w in e x e
in t e rfa z
lib ra ry Lib re ría
m o d u le Mó d u lo d e có d ig o n o p e rt e n e cie n t e a n in g ú n e n s a m b la d o
Ta b la 1 5 : Va lo re s a d m it id o s p o r la o p ció n / t d e cs c
● / m a in : S i a l co m p ila r u n e je cu t a b le h u b ie s e m á s d e u n p u n t o d e e n t ra d a vá lid o e n t re lo s
t ip o s d e fin id o s e n lo s fu e n t e s a co m p ila r s e h a d e in d ica r co m o va lo r d e e s t a o p ció n cu á l e s
e l n o m b re d e l t ip o q u e in clu ye la d e fin ició n d e l Main() a u t iliza r, p u e s s i n o e l co m p ila d o r
n o s a b ría co n cú a l d e t o d a s q u e d a rs e .
Co m o e s ló g ico , lo q u e n u n ca p u e d e h a ce rs e e s d e fin ir m á s d e u n p u n t o d e e n t ra d a e n u n m is m o t ip o
d e d a t o , p u e s e n t o n ce s n i s iq u ie ra a t ra vé s d e la o p ció n /main p o d ría re s o lve rs e la a m b ig ü e d a d .
● / re fe re n c e ( / r) : Po r d e fe ct o s ó lo s e b u s ca n d e fin icio n e s d e t ip o s d e d a t o s e xt e rn a s a lo s
fu e n t e s a co m p ila r e n la lib re ría mscorlib.dll q u e fo rm a p a rt e d e la BCL. S i a lg u n o d e lo s
fu e n t e s a co m p ila r h a ce u s o d e t ip o s p ú b lico s d e fin id o s e n o t ro s e n s a m b la d o s h a y q u e
in d ica r co m o va lo re s d e /r cu á le s s o n e s o s e n s a m b la d o s p a ra q u e t a m b ié n s e b u s q u e e n
e llo s .
Cu a n d o s e d e n va lo re s a /r h a y q u e t e n e r e n cu e n t a q u e p o r d e fe ct o e l co m p ila d o r in t e rp re t a rá ca d a
ru t a a s í in d ica d a d e m a n e ra re la t iva re s p e ct o a l d ire ct o rio d e s d e e l q u e s e le lla m e . S i n o lo e n cu e n t ra
a llí lo h a rá re la t iva m e n t e re s p e ct o a l d ire ct o rio d o n d e e s t é in s t a la d o e l CLR, q u e e n lo s s is t e m a s
o p e ra t ivo s Win d o ws e s e l s u b d ire ct o rio Microsoft.NET\Framework\v1.0.2914 d e l d ire ct o rio d e
in s t a la ció n d e Win d o ws . Y s i t a m p o co lo e n cu e n t ra a llí la in t e rp re t a rá re s p e ct o a lo s d ire ct o rio s
in d ica d o s p o r la va ria b le d e e n t o rn o LIB d e s u s is t e m a o p e ra t ivo .
Es im p o rt a n t e s e ñ a la r q u e e l CLR e s p e ra q u e t o d o s lo s m ó d u lo s q u e s e a ñ a d a n a u n e n s a m b la d o s e
d is t rib u ya n d e n t ro d e l m is m o d ire ct o rio q u e la lib re ría o e je cu t a b le co rre s p o n d ie n t e a l m is m o . S i n o s e
h a cie s e a s í n o lo s p o d ría lo ca liza r y e n t ie m p o d e e je cu ció n s e p ro d u ciría u n a
System.TypeLoadException s i s e in t e n t a s e a cce d e r a lo s t ip o s d e fin id o s e n e llo s .
Po r o t ro la d o , t a m b ié n h a y q u e t e n e r e n cu e n t a q u e n o e s vá lid o q u e u n m is m o t ip o d e d a t o s e d e fin a e n
va rio s d e lo s g ru p o s d e fich e ro s in d ica d o s . Po r e je m p lo , s i s e q u is ie s e co m p ila r A.cs co m o e je cu t a b le y co m o
m ó d u lo p o d ría p e n s a rs e e n h a ce r:
csc A.cs
csc /t:library A.cs
Ma n ip u la c ió n d e re c u rs o s
resgen misrecursos.resx
De e s t e m o d o e l fich e ro d e re cu rs o s fo rm a rá p a rt e d e l e n s a m b la d o g e n e ra d o p e ro p e rm a n e ce rá e n u n fich e ro
s e p a ra d o d e fuente1.dll. S i s e d e s e a s e in cru s t a rlo e n é l h a b ría q u e h a b e r co m p ila d o co n la o p ció n
/resource ( /res) e n ve z d e /linkres t a l y co m o s e m u e s t ra a co n t in u a ció n :
Co m o u n t ip o e s p e cia l d e re cu rs o q u e co m ú m e n t e s u e le in cru s t a ra s e e n lo s e je cu t a b le s d e lo s p ro g ra m a s e s
e l ico n o ( fich e ro g rá fico e n fo rm a t o .ico) co n e l q u e d e s d e la s in t e rfa ce s g rá fica s d e lo s s is t e m a s o p e ra t ivo s
s e le s re p re s e n t a rá , csc o fre ce u n a o p ció n e s p e cífica lla m a d a /win32icon e n cu yo va lo r p u e d e in d icá rs e le
e l ico n o a in cru s t a r:
En cu a lq u ie r ca s o , h a y q u e s e ñ a la r q u e s ie m p re q u e s e a ñ a d a u n fich e ro d e re cu rs o s a u n e n s a m b la d o la
vis ib ilid a d q u e s e co n s id e ra rá p a ra lo s re cu rs o s q u e in clu ya e s public.
Co n fig u ra c ió n d e m e n s a je s d e a v is o s y e rro re s
ej.cs(7,3): error CS0117: 'A' does not contain a definition for 'K'
C:\Ejemplo\ej.cs(7,3): error CS0117: 'A' does not contain a definition for 'K'
En e l la o d o p u e s t o , p u e d e q u e h a ya cie rt o s t ip o s d e m e n s a je s d e a vis o d e lo s q u e n o s e d e s e a s iq u ie ra q u e
s e in fo rm e e n t a n t o q u e la in fo rm a ció n q u e a p o rt a n ya s e co n o ce y s e s a b e q u e n o a fe ct a rá n e g a t iva m e n t e a l
p ro g ra m a . En e s o s ca s o s p u e d e u s a rs e la o p ció n /nowarn in d ica n d o co m o va lo re s s u yo s lo s có d ig o s
a s o cia d o s a lo s m e n s a je d e a vis o q u e n o s e d e s e a q u e s e re p o rt e n . El có d ig o a s o cia d o a ca d a t ip o d e
m e n s a je d e a vis o s e e s la p a la b ra d e la fo rm a CS<código> q u e s e m u e s t ra t ra s wa rn in g e n e l m e n s a je d e
N iv e l d e a v is o Av is o s m o s t ra d o s
0 Nin g u n o
1 S ó lo lo s m á s g ra ve s
Lo s m á s g ra ve s y a lg u n o s m e n o s g ra ve s co m o p o r e je m p lo lo s re la t ivo s a o cu lt a cio n e s d e
2
m ie m b ro s
Lo s d e n ive l 2 m á s a lg u n o s p o co g ra ve s co m o lo s re la t ivo s a l u s o d e e xp re s io n e s a b s u rd a s
3
q u e s ie m p re p ro d u zca n e l m is m o re s u lt a d o
4 To d o s
Ta b la 1 6 : Nive le s d e m e n s a je s d e a vis o
Fic h e ro s d e re s p u e s t a
Ah o ra b ie n , a l e s crib ir fich e ro s d e re s p u e s t a h a y q u e t e n e r cu id a d o co n d o s co s a s : n o e s p o s ib le co rt a r la s
o p cio n e s o n o m b re s d e fich e ro co n re t o rn o s d e ca rro q u e p ro vo q u e n q u e o cu p e n va ria s lín e a s ; y la s o p cio n e s
s o n p a s a d a s a l co m p ila d o r e n e l m is m o o rd e n e n q u e a p a re zca n e n e l fu e n t e , p o r lo q u e h a y q u e t e n e r
cu id a d o co n có m o s e co lo q u e n la s o p cio n e s /out y /t p o r lo ya co m e n t a d o s o b re la im p o rt a cia d e s u
co lo ca ció n .
Op c io n e s d e d e p u ra c ió n
class A
{
public static void Main()
{throw new System.Exception();}
}
S i lo co m p ila co n :
csc A.cs
S in e m b a rg o , s i lo co m p ila co n :
co m o p e rm it ir e je cu t a r p a s o a p a s o lo s p ro g ra m a s m o s t ra n d o e n ca d a m o m e n t o cu á l e s la lín e a d e l fu e n t e
q u e s e e je cu t a rá a co n t in u a ció n y co s a s s im ila re s .
Co m p ila c ió n in c re m e n t a l
Op c io n e s re la t iv a s a l le n g u a je
● / d e fin e ( / d ) : En e l Te m a 3 : El p re p ro ce s a d o r ya s e in t ro d u jo e s t a o p ció n cu yo s va lo re s
re co rd e m o s q u e s e u t iliza n p a ra in t ro d u cir d e fin icio n e s d e s ím b o lo s d e p re p ro ce s a d o a l
● / c h e c k e d : En lo s t e m a s 4 y 1 6 s e e xp licó q u e t o d o d e s b o rd a m ie n t o q u e o cu rra e n
o p e ra cio n e s a rit m é t ica s e n t re va ria b le s e n t e ra s e s t ra t a d o p o r d e fe ct o t ru n ca n d o e l
re s u lt a d o . Pu e s b ie n , la u t ilid a d d e a ct iva r e s t a o p ció n e s p re cis a m e n t e fo rza r a q u e s e
in clu ya n e n e l có d ig o g e n e ra d o la s co m p ro b a cio n e s n e ce s a ria s p a ra q u e e n ca s o d e
d e s b o rd a m ie n t o s e la n ce e n s u lu g a r u n a System.OverflowException.
Al u s a r e s t a o p ció n h a y q u e t e n e r e n cu e n t a u n a co s a , y e s q u e p a ra o p t im iza r e l t ie m p o q u e s e t a rd a
e n re a liza r co m p ila cio n e s in cre m e n t a le s , d u ra n t e e lla s e s t a o p ció n e s ig n o ra d a . Po r t a n t o , n o t ie n e
m u ch o s e n t id o co m b in a r /doc y /incr.
Ot ra s o p c io n e s
El va lo r q u e s e d é a e s t a o p ció n e s e l n o m b re d e co n e l q u e s e d e s e a q u e s e g e n e re e l fich e ro co n la
in fo rm a ció n re la t iva a l e rro r d e s cu b ie rt o d u ra n t e la co m p ila ció n . En d ich o fich e ro cs c in s e rt a rá
a u t o m á t ica m e n t e la s ig u ie n t e in fo rm a ció n :
El co m p ila d o r t ra t a rá e s t a lla m a d a t a l y co m o s i s e le h u b ie s e p a s a d o :
● / h e lp ( / ? ) : Mu e s t ra u n m e n s a je d e a yu d a re s u m ie n d o cu á le s s o n la s o p cio n e s a d m it id a s
p o r e l co m p ila d o r y p a ra q u é s irve n . To d a o p ció n o fich e ro a co m p ila r e s p e cifica d o ju n t o
o p ció n s o n t o t a lm e n t e ig n o ra d o s .
● / n o lo g o : In d ica q u e n o s e d e s e a q u e a l e je cu t a r e l co m p ila d o r s e g e n e re e l m e n s a je q u e
in clu ye in fo rm a ció n s o b re la ve rs ió n d e l co m p ila d o r y e l co p yrig h t d e Micro s o ft s o b re e l
m is m o q u e p o r d e fe ct o s e m u e s t ra .
Ac c e s o a l c o m p ila d o r d e s d e Vis u a l S t u d io . N ET
Op c ió n Co n t ro l v is u a l
/ b a s e a d d re s s Co n fig u ra t io n Pro p e rt ie s - > Ad va n ce d - > Ba s e Ad d re s s
/ ch e cke d Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > Ch e ck fo r Arit h m e t ic Ove rflo w/ Un d e rflo w
/ debug Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > Ge n e ra t e De b u g g in g In fo rm a t io n
/ d e fin e Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > Co n d it io n a l Co m p ila t io n Co n s t a n t s
/ doc Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > XML Do cu m e n t a t io n File
/ file a lig n Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > File Alig n m e n t
/ in cre m e n t a l Co n fig u ra t io n Pro p e rt ie s - > Ad va n ce d - > In cre m e n t a l Bu ild
/ m a in Co m m o n Pro p e rt ie s - > Ge n e ra l - > S t a rt u p Ob je ct
/ o p t im ize Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > Op t im ize co d e
/ out Co m m o n Pro p e rt ie s - > Ge n e ra l - > As s e m b ly Na m e
/ t a rg e t Co m m o n Pro p e rt ie s - > Ge n e ra l - > Ou t p u t Typ e
/ u n s a fe Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > Allo w u n s a fe co d e b lo cks
/ wa rn Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > Wa rn in g Le ve l b lo cks
/ wa rn a s e rro r Co n fig u ra t io n Pro p e rt ie s - > Bu ild - > Tre a t Wa rn in g s As Erro rs
/ win 3 2 ico n Co m m o n Pro p e rt ie s - > Ge n e ra l - > Ap p lica t io n Ico n
Op c ió n Me c a n is m o d e a c c e s o
/ b u g re p o rt He lp - > Cu s t o m e r Fe e d b a ck
/ re s o u rce S e le ccio n a r e l re cu rs o e n Pro je ct - > Ad d Exis t in g It e m
/ re fe re n ce S e le ccio n a r la re fe re n cia e n Pro je ct - > Ad d Re fe re n ce
Ta b la 1 8 : Acce s o a o p cio n e s fu e ra d e la s p á g in a s d e p ro p ie d a d e s
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s
El le n g u a je d e p ro g ra m a c ió n Nuestras zonas
C#
En e s t a p á g in a :
● Do cu m e n t a ció n d e re fe re n cia
❍ Bib lio g ra fía
❍ In fo rm a ció n e n In t e rn e t s o b re C#
❍ Po rt a le s
❍ Gru p o s d e n o t icia s y lis t a s d e co rre o
D o c u m e n t a c ió n d e re fe re n c ia
En t re la s fu e n t e s d e in fo rm a ció n s o b re C# e n in g lé s ca b e d e s t a ca r e l d o cu m e n t o "C# La n g u a g e
S p e cifica t io n " e s crit o p o r An d e rs He jls b e rg , S co t t Wilt a m u t h y Pe t e r Go ld e q u e Micro s o ft h a re m it id o
a l ECMA p a ra la e s t a n d a riza ció n d e l le n g u a je . Es t e d o cu m e n t o in clu ye la e s p e cifica ció n co m p le t a d e l
m is m o y Micro s o ft p e rm it e d e s ca rg a rlo g ra t u it a m e n t e d e s d e la d ire cció n
h t t p : / / www. m s d n . m icro s o ft . co m / n e t / e cm a .
I n fo rm a c ió n e n I n t e rn e t s o b re C#
P o rt a le s
Ap a rt e d e l p o rt a l d e Micro s o ft , o t ro s p o rt a le s d e d ica d o s a C# q u e p u e b la n la Re d s o n :
● m icro s o ft . p u b lic. vs n e t
● m icro s o ft . p u b lic. e s . cs h a rp
Re s p e ct o a lo s p ro p o rcio n a d o s e n in g lé s , s e ñ a la r q u e a u n q u e a lg u n o s d e e llo s s e re co g e n e n la
o p ció n On lin e Co m m u n it y d e la p á g in a d e in icio d e VS . NET, la lis t a co m p le t a d ía a d ía cre ce ca d a
ve z m á s y e n e l m o m e n t o d e e s crib ir e s t a s lín e a s e ra :
● m icro s o ft . p u b lic. d o t n e t . a ca d e m ic
● m icro s o ft . p u b lic. d o t n e t . d is t rib u t e d _ a p p s
● m icro s o ft . p u b lic. d o t n e t . fa q s
● m icro s o ft . p u b lic. d o t n e t . g e n e ra l
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. a d o n e t
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. a s p n e t
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. a s p n e t . m o b ile
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. a s p n e t . we b s e rvice s
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. clr
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. co m p o n e n t _ s e rvice s
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. d o cu m e n t a t io n
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. in t e ro p
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. o d b cn e t
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. p e rfo m a n ce
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. re m o t in g
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. s d k
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. s e t u p
● m icro s o ft . p u b lic. d o t n e t . fra m e wo rk. win d o ws fo rm s
● m icro s o ft . p u b lic. d o t n e t . la n g u a g e s . cs h a rp
● m icro s o ft . p u b lic. d o t n e t . la n g u a g e s . js crip t
● m icro s o ft . p u b lic. d o t n e t . la n g u a g e s . vb
● m icro s o ft . p u b lic. d o t n e t . la n g u a g e s . vb . u p g ra d e
● m icro s o ft . p u b lic. d o t n e t . la n g u a g e s . vc
● m icro s o ft . p u b lic. d o t n e t . la n g u a g e s . vc. lib ra rie s
● m icro s o ft . p u b lic. d o t n e t . s a m p le s
● m icro s o ft . p u b lic. d o t n e t . s crip t in g
● m icro s o ft . p u b lic. d o t n e t . vs a
● m icro s o ft . p u b lic. d o t n e t . xm l
● m icro s o ft . p u b lic. vs n e t . d e b u g g in
● m icro s o ft . p u b lic. vs n e t . d o cu m e n t a t io n
● m icro s o ft . p u b lic. vs n e t . e n t e rp ris e . t o o ls
● m icro s o ft . p u b lic. vs n e t . fa q s
● m icro s o ft . p u b lic. vs n e t . g e n e ra l
● m icro s o ft . p u b lic. vs n e t . id e
● m icro s o ft . p u b lic. vs n e t . s a m p le s
● m icro s o ft . p u b lic. vs n e t . s e rvice p a cks
● m icro s o ft . p u b lic. vs n e t . s e t u p
Prin cip io Pá g in a
© 1 9 9 9 - 2 0 0 2 , Pro g ra m a ció n e n ca s t e lla n o , s . l.
Co n t a ct o - Da t o s le g a le s