Anda di halaman 1dari 19

C Sharp

De Wikipedia, la enciclopedia libre Saltar a: navegacin, bsqueda El ttulo de este artculo se muestra incorrectamente debido a limitaciones tcnicas. El ttulo correcto es C#.
C# Desarrollador(es) Microsoft http://www.microsoft.com/net/ Informacin general Extensiones comunes Paradigma Multiparadigma: estructurado, imperativo, orientado a objetos, dirigido por eventos, funcional, gen rico, refle!ivo Apareci en Diseado por ltima !ersin esta"le #ipo de dato +st,tico, din,mico, fuerte, seguro, nominal Implementaciones Dialectos Microsoft .-+., Mono, Dot/-0 12, Spec S(arp, 3ol4p(onic 15 "### Microsoft $.# %&$ de agosto de "#&"' (ace & a)o* .cs

Influido por $a influido a Sistema operati!o

6ava, 177, +iffel, Modula89, 3ascal D, :5, 6ava $, ;ala Multiplataforma

C# %pronunciado si sharp en ingl s* es un lenguaje de programacin orientado a objetos desarrollado 4 estandari<ado por Microsoft como parte de su plataforma .-+., que despu s fue aprobado como un est,ndar por la +1M= %+1M=899>* e ?S@ %?S@A?+1 "9"B#*. 15 es uno de los lenguajes de programacin dise)ados para la infraestructura de lenguaje comn. Su sinta!is b,sica deriva de 1A177 4 utili<a el modelo de objetos de la plataforma .-+., similar al de 6ava, aunque inclu4e mejoras derivadas de otros lenguajes. +l nombre 1 S(arp fue inspirado por la notacin musical, donde C5C %sostenido, en ingl s sharp* indica que la nota %C es la nota do en ingl s* es un semitono m,s alta, sugiriendo que 15 es superior a 1A177. =dem,s, el signo C5C se compone de cuatro signos C7C pegados.& =unque 15 forma parte de la plataforma .-+., sta es una =3?, mientras que 15 es un lenguaje de programacin independiente dise)ado para generar programas sobre dic(a plataforma. Da e!iste un compilador implementado que provee el marco Mono 8 Dot/-0, el cual genera programas para distintas plataformas como WindoEs, 0ni!, =ndroid, i@S, WindoEs 3(one, Mac @S 4 /-0AFinu!.

%ndice
GocultarH & Iistoria " .ipos de datos 9 Fiterales > ;ariables $ 1onstantes J @peradores B ?nstrucciones de control K M todos L Matrices &# 1lases 4 objetos && 1adenas de caracteres

&&.& F?-M %Fanguage8?ntegrated Muer4* &" +jemplos &9 1ompiladores e ?D+Cs &> Metas del dise)o del lenguaje &$ Neferencias &J +nlaces e!ternos o &J.& +n castellano o &J." +n ingl s
o

$istoria&editar'
Durante el desarrollo de la plataforma .-+., las bibliotecas de clases fueron escritas originalmente usando un sistema de cdigo gestionado llamado Simple Managed 1 %SM1*. +n enero de &LLL, =nders Iejlsberg form un equipo con la misin de desarrollar un nuevo lenguaje de programacin llamado 1ool %Fenguaje 1 orientado a objetos*. +ste nombre tuvo que ser cambiado debido a problemas de marca, pasando a llamarse 15." Fa biblioteca de clases de la plataforma .-+. fue migrada entonces al nuevo lenguaje. Iejlsberg lider el pro4ecto de desarrollo de 15. =nteriormente, 4a (abOa participado en el desarrollo de otros lenguajes como .urbo 3ascal, Delp(i 4 677.

#ipos de datos&editar'
15 contiene dos categorOas generales de tipos de datos integrados: tipos de !alor 4 tipos de referencia. +l t rmino tipo de !alor indica que esos tipos contienen directamente sus valores. .ipos para definir nmeros enteros: #ipo de datos de enteros #ipo
byte sbyte short

E(ui!alente )C*
System.Byte System.SByte System.Int16

#amao K8bit %&8 b4te* K8bit %&8 b4te* # a "$$ 8&"K a &"B

+ango

Significado +ntero sin signo +ntero con signo +ntero corto con signo +ntero corto sin signo +ntero medio

&J8bit %"8 89".BJK a 9".BJB b4te* &J8bit %"8 # a J$.$9$ b4te* 9"8bit %>8 8".&>B.>K9.J>K a ".&>B.>K9.J>B

ushort System.UInt16 int System.Int32

b4te*
uint long ulong System.UInt32 System.Int64 System.UInt64

con signo +ntero medio sin signo +ntero largo con signo +ntero largo sin signo

9"8bit %>8 # a >."L>.LJB."L$ b4te* J>8bit %K8 8L.""9.9B".#9J.K$>.BB$.K#K a b4te* L.""9.9B".#9J.K$>.BB$.K#B J>8bit %K8 # a &K.>>J.B>>.#B9.B#L.$$&.J&$ b4te*

Fos tipos de coma flotante pueden representar nmeros con componentes fraccionales. +!isten dos clases de tipos de coma flotante: float 4 dou"le. +l tipo dou"le es el m,s utili<ado porque muc(as funciones matem,ticas de la biblioteca de clases de 15 usan valores dou"le. Mui<,, el tipo de coma flotante m,s interesante de 15 es decimal, dirigido al uso de c,lculos monetarios. Fa aritm tica de coma flotante normal est, sujeta a una variedad de errores de redondeo cuando se aplica a valores decimales. +l tipo decimal elimina estos errores 4 puede representar (asta "K lugares decimales. #ipo de datos de coma flotante #ipo
float

E(ui!alente )C*
System.Single

#amao

+ango

Significado 1oma flotante corto 1oma flotante largo

9"8bit %>8 P&.>#&"LK+Q>$ a P9.>#"K"9+79K b4te* J>8bit %K8 P>.L>#J$J>$K>&">J+Q9"> a b4te* P&.BLBJL9&9>KJ"9"+79#K

double

System.Double

decimal System.Decimal

QB.L""K&J"$&>"J>99B$L9$>9L$#99$ 1oma &"K8bit a flotante %&J8b4te* 7B.L""K&J"$&>"J>99B$L9$>9L$#99$ monetario

Fos caracteres en 15 no tienen un tama)o de K bits como en otros muc(os lenguajes de programacin, sino que usa un tama)o de &J bits llamado 0nicode al cual se le llama char. -o e!isten conversiones autom,ticas de tipo entero a char. #ipo de datos de caracteres #ipo E(ui!alente )C*
char System.Char

#amao

+ango

Significado

&J8bit %"8b4te* ' u!!!!' a ' u""""' 1ar,cter unicode

3ara los tipos de datos lgicos no e!isten conversiones autom,ticas de tipo entero a bool. #ipo de datos lgicos #ipo E(ui!alente )C* #amao +ango Significado

bool System.Boolean

K8bit %&8b4te* true o false ;erdadero o falso

*iterales&editar'
+n ocasiones, resulta m,s sencillo usar un sistema num rico en base &J en lugar de &#, para tal caso 15 permite especificar nmeros enteros en formato (e!adecimal, 4 se define anteponiendo !#, por ejemplo: !#"", que equivale a 2$$ en decimal. 15 tiene caracteres denominados secuencias de escape para facilitar la escritura con el teclado de sOmbolos que carecen de representacin visual. 15, al igual que 177, define un tipo de cadena de caracteres. Dentro de la cadena de caracteres se pueden usar secuencias de escape. 0na cadena de caracteres puede iniciarse con el sOmbolo % seguido por una cadena entre comillas %&*, en tal caso, las secuencias de escape no tienen efecto, 4 adem,s la cadena puede ocupar dos o m,s lOneas. Enteros decimal (e!adecimal entero largo
24$, '!..()* !#"$, !#'!..(+,-.."+,a..f)* 12.

entero largo sin signo 6$4U. Coma flotante float double decimal c(ar String =lerta %timbre* Netroceso =vance de p,gina -ueva lOnea Netorno de carro .abulador (ori<ontal .abulador vertical
23.$", 23.$f' 1./203", 1./203f, 1./2e3", 1./2e3f 23.$, 23.$D, 23.$d, 1./203, 1./203D (.($1

Caracteres
'a', '2', ' u!231'

Cadenas
&3ello+,4orld&' &C5 a b f n r t 7 6indo4s &, %&C5 6indo4s &

Secuencias de escape

-ulo 1omilla simple 1omilla doble Rarra inversa

! ' &

,aria"les&editar'
Fas variables son identificadores asociados a valores. Se declaran indicando el tipo de dato que almacenar, 4 su identificador. 0n identificador puede:

empe<ar por STS. contener caracteres 0nicode en ma4sculas 4 minsculas %sensible a ma4sculas 4 minsculas*.

0n identificador no puede:

empe<ar por un nmero. empe<ar por un sOmbolo, ni aunque sea una palabra clave. contener m,s de $&& caracteres.

Declarar una variable:


int,mi8umero9,::,Declaramos,la,7ariable+,;ero,no,la,iniciali<amos,con, ning=n,7alor.

3ara asignar un valor a una variable, se indica el identificador de la misma, seguido del sOmbolo igual %>* 4 el valor que queremos que almacene:
mi8umero,>,$9,::,-signamos,el,7alor,'$'.

.ambi n se puede declarar 4 asignar un valor al mismo tiempo:


int,mi8umero,>,$9,::,Declaramos,la,7ariable+,y,asignamos,el,7alor,'$'.

Fas conversiones de tipo de variables en 15 se representan en la siguiente tabla en donde la fila es el origen 4 la columna el destino.
Leyenda Rojo $%ul Conversin incompatible ( !. Conversin e&plcita (E!. "erde Conversin autom#tica o implcita ($!.

Con!ersiones de tipo de datos "-te s"-te short ushort int uint long ulong float dou"le decimal char "ool "-te s"-te short ushort int uint long ulong float dou"le char "ool

+ + + + + + + + + + + + + + + + + + + + +

= = + + + + + + + + +

= + + + + + + + + + =

= = = = + + + + + + =

= + = = + + + + + + =

= = = = = = + + + + =

= = = = = = + + + + =

+ + + + + + + + + + =

+ + + + + + + + = + =

+ + + + + + + + + + =

+ + + + + + + + ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?

decimal +

? ? ? ? ? ? ? ? ? ? ? ? .oda conversin implOcita no ocasiona p rdida de informacin, truncamientos o redondeos. +s posible %pero no siempre ocurre* que en una conversin e!plOcita (a4a p rdida de informacin, truncamientos o redondeos. +n toda conversin implOcita el tipo de dato destino es ma4or que el tipo de dato origen. Fa conversin e!plOcita se reali<a indicando el tipo de dato al que se quiere convertir entre par ntesis, seguido del valor:

long,7alor,>,1239,::,Con7ersi?n,im;l@cita long,7alor,>,AlongB1239,::,Con7ersi?n,e#;l@cita

=dem,s de reali<arse dentro de una asignacin, las conversiones de tipos tambi n tienen lugar dentro de una e!presin, pues en cada operacin ambos operandos deben de ser del mismo tipo. Si la conversin es del tipo implOcito se efecta el siguiente algoritmo en dic(o orden: &. ". 9. >. $. J. Si un operando es decimal, el otro operando se transforma a decimal. Si un operando es double, el otro operando se transforma a double. Si un operando es float, el otro operando se transforma a float. Si un operando es ulong, el otro operando se transforma a ulong. Si un operando es long, el otro operando se transforma a long. Si un operando es uint, 4 si el otro operando es de tipo sbyte, short o int, los dos se transforman a long. B. Si un operando es uint, el otro operando se transforma a uint. K. Si no es ninguno de los casos anteriores, los dos operandos se transforman a int.

Constantes&editar'
Fas constantes son valores inmutables, 4 por tanto no se pueden cambiar.
const

1uando se declara una constante con la palabra clave const, tambi n se debe asignar el valor. .ras esto, la constante queda bloqueada 4 no se puede cambiar. Son implOcitamente est,ticas %static*.
const,double,CI,>,3.141$9 readonly

= diferencia de const, no requiere que se asigne el valor al mismo tiempo que se declara. 3ueden ser miembros de la instancia o miembros est,ticos de la clase %static*.
readonly,double,09 0,>,2./1D2D9

.peradores&editar'
Categor/a =ritm tico 1oncatenacin Despla<amiento Nelacional =signacin =cceso a miembro ?nde!acin 1onversin 1ondicional 1reacin de objeto .peradores
*,E,F,:,G

Fgico 4 a nivel de bits U V W XX YY


*

?ncremento, decremento **,EE


HH,II >>,J>,H,I,H>,I>

Z UZ [[Z \\Z
. ',) A,B K,5 ne4

as,is,si<eof,ty;eof ?nformacin de tipo Fos operadores aritm ticos funcionan igual que en 1 4 177. +l resultado de los operadores relacionales 4 lgicos es un valor de tipo bool. Fos operadores de cortocircuito evalan el segundo operando solo cuando es necesario.

Fos operadores a nivel de bits no se pueden aplicar a tipos bool, float, double o decimal.

Instrucciones de control&editar'
if-else if,Ai,>>,2B,L ,,,,::,... M else,if,Ai,>>,3B,L ,,,,::,... M else,L ,,,,::,... M switch s4itch,AiB,L ,,,,case,15 ,,,,,,,,... ,,,,,,,,breaN9 ,,,,case,25 ,,,,case,35 ,,,,,,,,... ,,,,,,,,breaN9 ,,,,default5 ,,,,,,,,... ,,,,,,,,breaN9 M for for,Aint,i,>,!9,i,H,1!9,i**B,L ,,,,::,... M while 4hile,Ai,H,1!B,L ,,,,::,... M do-while do,L ,,,,::,... M,4hile,AtrueB9 foreach

foreach,Achar,c,in,char.istB,L ,,,,::,... M Fas instrucciones ifEelse, for, 4hile, doE4hile, s4itch, return, breaN, continue son, b,sicamente, iguales que en 1, 177 4 6ava. Fa instruccin foreach, al igual que en 6ava, reali<a un ciclo a trav s de los

elementos de una matri< o coleccin. +n este ciclo se recorre la coleccin 4 la variable recibe un elemento de dic(a coleccin en cada iteracin. Fa instruccin goto se sigue utili<ando en 15 a pesar de la pol mica sobre su uso.

01todos&editar'

.odo m todo debe ser parte de una clase, no e!isten m todos globales %funciones*. 3or defecto, los par,metros se pasan por valor. %-tese que las listas 4 otras colecciones son variables por referencia %referencias al espacio reservado para esa lista en la pila* 4 que se pasa por valor al m todo la referencia, pero el espacio reservado para la lista es comn, por lo que si elimina un elemento lo (ace tambi n de la original*. +l modificador ref fuer<a a pasar los par,metros por referencia en ve< de pasarlos por valor 4 obliga a iniciali<ar la variable antes de pasar el par,metro. +l modificador out es similar al modificador ref, con la diferencia de que no se obliga a iniciali<ar la variable antes de pasar el par,metro. 1uando ref 4 out modifican un par,metro de referencia, la propia referencia se pasa por referencia. +l modificador ;arams sirve para definir un nmero variable de argumentos los cuales se implementan como una matri<. 0n m todo debe tener como m,!imo un nico par,metro ;arams 4 ste debe ser el ltimo. 0n m todo puede devolver cualquier tipo de dato, inclu4endo tipos de clase. Da que en 15 las matrices se implementan como objetos, un m todo tambi n puede devolver una matri< %algo que se diferencia de 177 en que las matrices no son v,lidas como tipos de valores devueltos*. 15 implementa sobrecar'a de mtodos, dos o m,s m todos pueden tener el mismo nombre siempre 4 cuando se diferencien por sus par,metros. +l m todo 1ain es un m todo especial al cual se refiere el punto de partida del programa.

ref 7oid,CassOefAref,int,#B,L ,,,,if,A#,>>,2B,L ,,,,,,,,#,>,1!9 ,,,,M M , int,<,>,!9 CassOefAref,<B9

out 7oid,CassPutAout,int,#B,L ,,,,#,>,29 M , int,<9 CassPutAout,<B9 params int,1a#QalAchar,c+,;arams,int'),numsB,L ,,,,::,... M , int,a,>,19 1a#QalA'a'+,23+,3+,a+,E12B9,::,0l,;rimer,;arRmetro,es,obligatorio+, seguidamente,se,;ueden,;oner,tantos,n=meros,enteros,como,se,Suiera Sobrecarga de mtodos int,SumaAint,#+,int,yB,L ,,,,return,#,*,y9 M int,SumaAint,#+,int,y+,int,<B,L ,,,,return,#,*,y,*,<9 M , SumaA1+,2B9,::,.lamarR,al,;rimer,mTtodo. SumaA1+,2+,3B9,::,.lamarR,al,segundo,mTtodo. Main ;ublic,static,7oid,1ainAstring'),argsB,L ,,,,::,... M

0atrices&editar'

+n 15 las matrices se implementan como objetos. Fos Ondices de las matrices comien<an en #. Da que 15 implementa las matrices como objetos, cada matri< tiene una propiedad .ength que contiene el nmero de elementos que puede alojar o tiene alojados.

Declarar una matri<:


int'),int-rray,>,ne4,int'$)9

Declarar e iniciali<ar una matri< %el tama)o de la matri< se puede omitir*:

int'),int-rray,>,ne4,int'),L1+,2+,3+,4+,$M9

=cceder a un elemento:
int-rray'2)9,::,OetornarR,el,7alor,'3'

Declarar una matri< multidimensional:


int'+),int1ulti-rray,>,ne4,int'3+,2)9,::,3,filas,y,2,columnas

Declarar e iniciali<ar una matri< multidimensional %el tama)o de la matri< se puede omitir*:
int'+),int1ulti-rray,>,ne4,int'+),L,L1+,2M+,L3+,4M+,L$+,6M,M9

=cceder a un elemento de una matri< multidimensional:


int1ulti-rray'2+,!)9,::,OetornarR,el,7alor,'$'

M,s informacin en: .utorial de matrices %15* %en ingl s*.

Clases - o"2etos&editar'

0na variable de objeto de cierta clase no almacena los valores del objeto sino su referencia %al igual que 6ava*. +l operador de asignacin no copia los valores de un objeto, sino la referencia al mismo %al igual que 6ava*. 0n constructor tiene el mismo nombre que su clase 4 es sint,cticamente similar a un m todo. 0n constructor no devuelve ningn valor %ni siquiera void*. =l igual que los m todos, los constructores tambi n pueden ser sobrecargados. Si no se especifica un constructor en una clase, se usa uno por defecto que consiste en asignar a todas las variables el valor !, null o false segn corresponda. 1uando un objeto no es referenciado por ninguna variable, el recolector de basura ejecuta el destructor de dic(a clase 4 libera la memoria utili<ada. +l destructor de una clase no se llama cuando un objeto sale del ,mbito. .odos los destructores se llamar,n antes de que finalice un programa. Fa palabra clave this es una referencia al mismo objeto en el cual se usa. Fa palabra clave base es una referencia a la clase padre del objeto en la que se usa %por defecto, @bject*. Fa palabra clave static (ace que un miembro pertene<ca a una clase en ve< de pertenecer a objetos de dic(a clase. Se puede tener acceso a dic(o miembro antes de que se cree cualquier objeto de su clase 4 sin referencias a un objeto. 0n m todo static no tiene una referencia this. 0n m todo static puede llamar slo a otros m todos static.

0n m todo static slo debe tener acceso directamente a datos static. 0n constructor static se usa para iniciali<ar atributos que se aplican a una clase en lugar de aplicarse a una instancia. 15 permite la sobrecarga de operadores %*, E, F, etc.* con la palabra clave o;erator. =l comparar objetos %>>, J>, H, I, H>, I>* se comprueba si (acen referencia al mismo objeto.

Declarar una clase:


class,Clase,L M

?niciar una clase %tambi n llamado crear un objeto de la clase o instanciar una clase*:
Clase,c,>,ne4,ClaseAB9

1onstructor %como si fuera un m todo, pero con el nombre de su clase*:


class,Clase,L ,,,,ClaseAB,L ,,,,,,,,::,... ,,,,M M

Destructor %como si fuera un m todo, precedido del sOmbolo CUC*:


class,Clase,L ,,,,UClaseAB,L ,,,,,,,,::,... ,,,,M M this: class,Clase,L ,,,,int,i,>,19 ,,,,ClaseAB,L ,,,,,,,,this.-rrancarAB9,::,.lamarR,al,mTtodo,'-rrancar',del,obVeto ,,,,M ,,,,7oid,-rrancarAB,L ,,,,,,,,::,... ,,,,M M static: class,Clase,L ,,,,static,int,i,>,19 M

Clase.i9,::,OetornarR,el,7alor,'1'.,8o,hace,falta,crear,un,obVeto+,ya, Sue,al,ser,'static'+,;ertenece,a,la,clase. o;erator: class,Clase,L ,,,,static,int,o;erator,*Aint,#+,int,yB,L ,,,,,,,,::,Sobrecarga,el,o;erador,'*' ,,,,,,,,::,... ,,,,M ,,,,static,int,o;erator,EAint,#+,int,yB,L ,,,,,,,,::,Sobrecarga,el,o;erador,'E' ,,,,,,,,::,... ,,,,M ,,,,static,int,o;erator,intAbyte,#B,L ,,,,,,,,::,Sobrecarga,la,con7ersi?n,de,ti;o,'byte',a,'int' ,,,,,,,,::,... ,,,,M M

1omparacin de objetos:
class,Clase,L M Clase,c1,>,ne4,ClaseAB9 Clase,c2,>,ne4,ClaseAB9 bool,b,>,c1,>>,c29,::,OetornarR,'false'+,ya,Sue,son,dos,obVetos, distintos

Cadenas de caracteres&editar'

+l tipo de dato para las cadenas de caracteres es string. Nealmente la palabra clave string es un alias de la clase System.String de la plataforma .-+.. +n 15 las cadenas son objetos 4 no una matri< de caracteres' aun asO, se puede obtener un car,cter arbitrario de una cadena por medio de su Ondice %pero no modificarlo*. Fas cadenas son inmutables, una ve< creadas no se pueden modificar, solo se pueden copiar total o parcialmente. +l operador >> determina si dos referencias (acen referencia al mismo objeto, pero al usar dic(o operador con dos variables tipo string se prueba la igualdad del contenido de las cadenas 4 no su referencia. Sin embargo, con el resto de los operadores relacionales, como H 4 I>, sO se comparan las referencias. Se pueden concatenar %unir* dos cadenas mediante el operador *. Fas cadenas se pueden usar en las instrucciones s4itch.

Declarar una cadena de caracteres %como si fuera una variable de un tipo de dato como int o double*:
string,te#to,>,&Cadena,de,caracteres&9

string,te#to,>,ne4,System.StringA&Cadena,de,caracteres&B9,::, 0Sui7alente,al,anterior

Fongitud de una cadena:


string,te#to,>,&Cadena,de,caracteres&9 int,i,>,te#to..ength9,::,OetornarR,'2!'

1omparar dos cadenas:


bool,b,>,&te#to&,>>,&te#to&9,::,OetornarR,'true'+,ya,Sue,ambas,cadenas, contienen,&te#to&

1oncatenar cadenas:
string,te#to,>,&Cadena,de&,*,&,caracteres&9,::,8?tese,el,es;acio,antes, de,&caracteres&+,si,no,se,;usiera+,a;arecer@a,Vunto5,&decaracteres&

Fa clase System.String, 4 una instancia de la misma, string, poseen algunos m todos para trabajar con cadenas, como:
static,string,Co;yAstring,strB:

devuelve una copia de str.

string,te#to1,>,&abc&9 string,te#to2,>,&#y<&9 string,te#to2,>,System.String.Co;yAte#to1B9,::,'te#to2',ahora,contiene, &abc& int,Com;areWoAstring,strB:

devuelve menor que cero si la cadena que llama es menor que str, ma4or que cero si la cadena que llama es ma4or que str, 4 cero si las cadenas son iguales.
string,te#to,>,&abc&9 int,i,>,te#to.Com;areWoA&abc&B9,::,OetornarR,'!' int,Inde#PfAstring,strB: devuelve el Ondice de la primera subcadena especificada en str, o 8& en caso de error.

coincidencia de la

string,te#to,>,&abcdefabcdef&9 int,i,>,te#to.Inde#PfA&e&B9,::,OetornarR,'4' int,V,>,te#to.Inde#PfA&def&B9,::,OetornarR,'3'+,Sue,es,donde,se, encuentra,el,carRcter,'d'+,seguido,de,'e',y,'f' int,.astInde#PfAstring,strB: devuelve el Ondice subcadena especificada en str, o 8& en caso de error.

de la ltima coincidencia de la

string,te#to,>,&abcdefabcdef&9 int,i,>,te#to..astInde#PfA&e&B9,::,OetornarR,'1!' int,V,>,te#to..astInde#PfA&def&B9,::,OetornarR,'('+,Sue,es,donde,se, encuentra,el,=ltimo,carRcter,'d'+,seguido,de,'e',y,'f'

string,Wo.o4er:

devuelve una copia de la cadena en minsculas.

string,te#to,>,&-BC&9 string,te#to,>,te#to.Wo.o4erAB9,::,OetornarR,&abc& string,WoU;;er:

devuelve una copia de la cadena en ma4sculas.

string,te#to,>,&abc&9 string,te#to,>,te#to.WoU;;erAB9,::,OetornarR,&-BC& string,Substring:

devuelve una subcadena, indicando la posicin de inicio 4 la longitud que se desea.


string,te#to,>,&Cadena,de,caracteres&9 string,te#to,>,te#to.SubstringA1!+,DB9,::,OetornarR,&caracter&

M,s informacin en: String %1lase* %S4stem* %en ingl s*. *I34 (*anguage5Integrated 4uer-)&editar'

E2emplos&editar'
+jemplo b,sico SIola mundoS:
using,System9 , ;ublic,class,0Vem;lo,L ,,,,;ublic,static,7oid,1ainAstring'),argsB,L ,,,,,,,,Console.6rite.ineA&3ola,mundo&B9 ,,,,M M

Suma 4 concatenacin:
using,System9 , ;ublic,class,0Vem;lo,L ,,,,;ublic,static,7oid,1ainAstring'),argsB,L ,,,,,,,,int,#,>,1!9 ,,,,,,,,int,y,>,2!9 ,,,,,,,,Console.6rite.ineA&0l,resultado,es5,&,*,A#,*,yBB9,::,Im;rimirR, en,;antalla5,&0l,resultado,es5,3!& ,,,,M M

0so de clases, m todos, propiedades 4 sobrecarga:


using,System9 , ;ublic,class,Coche,L

,,,,;ri7ate,int,numCuertas9 ,,,,;ublic,int,8umCuertas,L ,,,,,,,,get,L ,,,,,,,,,,,,return,this.numCuertas9 ,,,,,,,,M ,,,,,,,,set,L ,,,,,,,,,,,,this.numCuertas,>,7alue9,::,'7alue',es,una,7ariable,Sue,se, asigna,automRticamente,al,asignar,un,7alor,a,la,;ro;iedad+ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,;ara,;oder,trabaVar,con,dicho, 7alor. ,,,,,,,,M ,,,,M , ,,,,;ublic,CocheAint,numCuertasB,L ,,,,,,,,this.8umCuertas,>,numCuertas9 ,,,,M , ,,,,::,Sobrecarga5,si,se,instancia,la,clase,sin,indicar,ning=n, ;arRmetro+,se,iniciali<a,'numCuertas',con,el,7alor,'2' ,,,,;ublic,CocheAB,5,thisA2B,L ,,,,M M , ;ublic,class,0Vem;lo,L ,,,,;ublic,static,7oid,1ainAstring'),argsB,L ,,,,,,,,Coche,coche,>,ne4,CocheAB9,::,Se,usa,el,segundo,constructor ,,,,,,,,coche.8umCuertas,>,49 ,,,,,,,,Console.6rite.ineA&0l,n=mero,de,;uertas,es5,&,*, coche.8umCuertasB9 ,,,,M M

Compiladores e IDE6s&editar'
+n la actualidad e!isten los siguientes compiladores o ?D+ para el lenguaje 15:

Microsoft .-+. :rameEork ".# %SD]* inclu4e un compilador de 15, pero no un ?D+. Microsoft ;isual Studio, ?D+ por e!celencia de este lenguaje. S(arpDevelop, ?D+ libre para 15 bajo licencia /-0 F/3F, con una interfa< mu4 similar a Microsoft ;isual Studio. Mono, es una implementacin con licencia /-0 /3F de todo el entorno .-+. desarrollado por -ovell. 1omo parte de esta implementacin se inclu4e un compilador de 15. Delp(i "##J, de Rorland SoftEare 1orporation. Dot/-0 3ortable.-+., de la :ree SoftEare :oundation.

0etas del diseo del lengua2e&editar'


+l est,ndar +1M=899> lista las siguientes metas en el dise)o para 15:

Fenguaje de programacin orientado a objetos simple, moderno 4 de propsito general. ?nclusin de principios de ingenierOa de softEare tales como revisin estricta de los tipos de datos, revisin de lOmites de vectores, deteccin de intentos de usar variables no iniciali<adas, 4 recoleccin de basura autom,tica. 1apacidad para desarrollar componentes de softEare que se puedan usar en ambientes distribuidos. 3ortabilidad del cdigo fuente. :,cil migracin del programador al nuevo lenguaje, especialmente para programadores familiari<ados con 1, 177 4 6ava. Soporte para internacionali<acin. =decuacin para escribir aplicaciones de cualquier tama)o: desde las m,s grandes 4 sofisticadas como sistemas operativos (asta las m,s peque)as funciones. =plicaciones econmicas en cuanto a memoria 4 procesado.

+eferencias&editar'
&. ?r a ^ 6ames ]ovacs %B de septiembre de "##B*. _15A.-+. Iistor4 Fesson` %en ingl s*. 1onsultado el $ de agosto de "#&&. ". ?r a ^ ;isual 15 Developer 1enter, :requentl4 =sked Muestions =bout ;isual 15 .-+. "##9 %en ingl s*

Enlaces externos&editar'
En castellano&editar'

Wikilibros alberga un libro o manual sobre C sharp 3E#. /uOa de programacin de 15 3rogramacin con 15 1entro de desarrolladores de ;isual 15 Desarrollo de SoftEare en 15 1omunidad virtual para profesionales 4Ao estudiantes de (abla castellana. Rlog de programacin, 15 /eeks.ms Rlogs sobre desarrolladores de la plataforma .-+. 4 15 ]it de desarrollo de softEare %SD]* de Microsoft .-+. :rameEork ".# %!KJ*, %!J>* e %?=J>* 15 Y Web3rogramacin =rtOculos, ejemplos, fragmentos de cdigo, etc.

En ingl1s&editar'

Microsoft .-+. :rameEork Standard +1M=899> %Especificacin del len'uaje C(*. +specificacin de 15 9.# 15 .utorial 3rogrammerCs Ieaven 15 Sc(ool Rook

Wikimedia 1ommons alberga contenido multimedia sobre C Sharp.

Anda mungkin juga menyukai