Introducción a CSharp

download Introducción a CSharp

of 12

Transcript of Introducción a CSharp

  • 7/23/2019 Introduccin a CSharp

    1/12

    Detalle de las caractersticas bsicas de este lenguaje

  • 7/23/2019 Introduccin a CSharp

    2/12

    Origen y necesidad de un nuevo lenguaje

    C# (ledo en ingls C Sharp y en espaol CAlmohadilla) es el nuevo lenguaje de

    propsito general diseado por Microsoft

    para su plataforma .NET. Sus principales

    creadores son Scott Wiltamuth y Anders

    Hejlsberg, ste ltimo tambin conocido por

    haber sido el diseador del lenguaje TurboPascal y la herramienta RAD Delphi.

    .La sintaxis y estructuracin de C# es muyparecida a la de C++ o Java, puesto que la

    intencin de Microsoft es facilitar la

    migracin de cdigos escritos en estoslenguajes a C# y facilitar su aprendizaje a los

    desarrolladores habituados a ellos. Sin

    embargo, su sencillez y el alto nivel de

    productividad son comparables con los de

    Visual Basic.

  • 7/23/2019 Introduccin a CSharp

    3/12

  • 7/23/2019 Introduccin a CSharp

    4/12

    Sencillez:C# elimina muchos elementos que otros lenguajesincluyen y que son innecesarios en .NET. Porejemplo:

    El cdigo escrito en C# es autocontenido, loque significa que no necesita de ficheros

    adicionales al propio fuente tales como ficherosde cabecera o ficheros IDL

    El tamao de los tipos de datos bsicos es fijo eindependiente del compilador, sistemaoperativo o mquina para quienes se compile(no como en C++), lo que facilita la portabilidaddel cdigo.

    No se incluyen elementos poco tiles delenguajes como C++ tales como macros,herencia mltiple o la necesidad de un operadordiferente del punto (.) acceder a miembros deespacios de nombres (::)

    Caractersticas

    Modernidad:C# incorpora en el propio lenguaje elementos que a lolargo de los aos ha ido demostrndose son muytiles para el desarrollo de aplicaciones y que en otroslenguajes como Java o C++ hay que simular, como untipo bsico decimalque permita realizar operaciones

    de alta precisin con reales de 128 bits (muy til en elmundo financiero), la inclusin de una instruccinforeachque permita recorrer colecciones confacilidad y es ampliable a tipos definidos por elusuario, la inclusin de un tipo bsico stringpararepresentar cadenas o la distincin de un tipo boolespecfico para representar valores lgicos.

  • 7/23/2019 Introduccin a CSharp

    5/12

    Caractersticas

    Orientacin a objetos:Como todo lenguaje de programacin de propsitogeneral actual, C# es un lenguaje orientado aobjetos, aunque eso es ms bien una caractersticadel CTS que de C#. Una diferencia de este enfoqueorientado a objetos respecto al de otros lenguajes

    como C++ es que el de C# es ms puro en tanto queno admiten ni funciones ni variables globales sinoque todo el cdigo y datos han de definirse dentrode definiciones de tipos de datos, lo que reduceproblemas por conflictos de nombres y facilita lalegibilidad del cdigo.

    Extensibilidad de tipos bsicos:C# permite definir, a travs de estructuras, tiposde datos para los que se apliquen las mismasoptimizaciones que para los tipos de datosbsicos. Es decir, que se puedan almacenardirectamente en pila (luego su creacin,

    destruccin y acceso sern ms rpidos) y seasignen por valor y no por referencia. Paraconseguir que lo ltimo no tenga efectosnegativos al pasar estructuras como parmetrosde mtodos, se da la posibilidad de pasarreferencias a pila a travs del modificador deparmetro ref.

  • 7/23/2019 Introduccin a CSharp

    6/12

    Caracteristicas

    Compatible:Para facilitar la migracin de programadores, C# noslo mantiene una sintaxis muy similar a C, C++ oJava que permite incluir directamente en cdigoescrito en C# fragmentos de cdigo escrito en estoslenguajes, sino que el CLR tambin ofrece, a travs

    de los llamados Platform Invocation Services(PInvoke), la posibilidad de acceder a cdigo nativoescrito como funciones sueltas no orientadasa objetos tales como las DLLs de la API Win32.Ntese que la capacidad de usar punteros en cdigoinseguro permite que se pueda acceder confacilidad a este tipo de funciones, ya que stasmuchas veces esperan recibir o devuelven punteros.

    Versionable:C# incluye una poltica de versionadoque permitecrear nuevas versiones de tipos sin temor a que laintroduccin de nuevos miembros provoquenerrores difciles de detectar en tipos hijospreviamente desarrollados y ya extendidos con

    miembros de igual nombre a los recinintroducidos.

  • 7/23/2019 Introduccin a CSharp

    7/12

  • 7/23/2019 Introduccin a CSharp

    8/12

    Comentarios

    Comentarios

    Un comentarioes texto que se incluye en el cdigofuente para facilitar su lectura a los programadores ycuyo contenido es, por defecto, completamenteignorado por el compilador. Suelen usarse paraincluir informacin sobre el autor del cdigo, para

    aclarar el significado o el porqu de determinadassecciones de cdigo, para describir elfuncionamiento de los mtodos de las clases, etc.

    En C# hay dos formas de escribir comentarios. Laprimera consiste en encerrar todo el texto que sedesee comentar entre caracteres /*y */. Estoscomentarios pueden abarcar tantas lneas como sea

    necesario.C# tambin ofrece una sintaxis alternativa mscompacta para la escritura este tipo de comentariosen las que se considera como indicador delcomienzo del comentario la pareja de caracteres // ycomo indicador de su final el fin de lnea.

    Comentarios Multi lnea

    Comentarios de lnea

  • 7/23/2019 Introduccin a CSharp

    9/12

    Identificadores

    Al igual que en cualquier lenguaje de programacin,en C# un identificador no es ms que, como supropio nombre indica, un nombre con el queidentificaremos algn elemento de nuestro cdigo,ya sea una clase, una variable, un mtodo, etc.

    Tpicamente el nombre de un identificador ser unasecuencia de cualquier nmero de caracteresalfanumricos incluidas vocales acentuadas y ees-tales que el primero de ellos no sea un nmero. Porejemplo, identificadores vlidos seran: Arriba, caa,C3P0, , etc; pero no lo seran 3com, 127, etc.

    Sin embargo, y aunque por motivos de legibilidaddel cdigo no se recomienda, C# tambin permiteincluir dentro de un identificador caracteres

    especiales imprimibles tales como smbolos dediresis, subrayados, etc. siempre y cuando estos notengan un significado especial dentro del lenguaje.Por ejemplo, tambin seran identificadores vlidos,_barco_,ck y AB;

    pero no C# (# indica inicio de directiva depreprocesado) o a!b (! indica operacin lgica not)

    Finalmente, C# da la posibilidad de poderescribir identificadores que incluyan caracteresUnicode que no se puedan imprimir usando elteclado de la mquina del programador o que nosean directamente vlidos debido a que tenganun significado especial en el lenguaje. Para ello,lo que permite es escribir estos caracteres

    usando secuencias de escape.

    Estos dgitos indican es el cdigo Unicode delcarcter que se desea incluir como parte delidentificador, y cada uno de ellos ha de ser undgito hexadecimal vlido. (0-9, a-f A-F) Hayque sealar que el carcter u ha de escribiese enminscula cuando se indiquen caracteres

    Unicode con 4 dgitos y en mayscula cuando seindiquen con caracteres de ocho. Ejemplos deidentificadores vlidos son C\u0064 (equivale aC#, pues 64 es el cdigo de # en Unicode) a\U00000033b (equivale a a!b)

  • 7/23/2019 Introduccin a CSharp

    10/12

    Palabras reservadas

    Aunque antes se han dado una serie de restriccionessobre cules son los nombres vlidos que se puedendar en C# a los identificadores.

    Para futuras implementaciones del lenguaje y sedecidiese incluir nuevas palabras reservadas,Microsoft dice que dichas palabras habran de incluiral menos dos smbolos de subrayado consecutivos(__) Por tanto, para evitar posibles conflictos futurosno se recomienda dar a nuestros identificadoresnombres que contengan dicha secuencia desmbolos.

  • 7/23/2019 Introduccin a CSharp

    11/12

    Literales

    Literales enteros:Un nmero entero se puede representar en C# tantoen formato decimal como hexadecimal. En el primercaso basta escribir los dgitos decimales (0-9) delnmero unos tras otros, mientras que en el segundohay que preceder los dgitos hexadecimales (0-9, a-f,A-F) con el prefijo 0x. En ambos casos es posiblepreceder el nmero de los operadores + paraindicar si es positivo o negativo, aunque si no sepone nada se considerar que es positivo. Ejemplosde literales enteros son 0, 5, +15, -23, 0x1A, -0x1a,

    etc

    Literales reales:Los nmeros reales se escriben de forma similara los enteros, aunque slo se pueden escribir enforma decimal y para separar la parte entera dela real usan el tradicional punto decimal(carcter .) Tambin es posible representar losreales en formato cientfico, usndose paraindicar el exponente los caracteres e E.Ejemplos de literales reales son 0.0, 5.1, -5.1,+15.21, 3.02e10, 2.02e-2, 98.8E+1, etc.

    Un literal es la representacin explcita de los valores que pueden tomar los tipos bsicos del lenguaje. Acontinuacin se explica cul es la sintaxis con que se escriben los literales en C# desglosndolos segn eltipo de valores que representan:

  • 7/23/2019 Introduccin a CSharp

    12/12

    Literales

    Literales de carcter:Prcticamente cualquier carcter se puederepresentar encerrndolo entre comillas simples.Por ejemplo, 'a' (letra a), ' ' (carcter de espacio), '?'(smbolo de interrogacin), etc. Las nicasexcepciones a esto son los caracteres que semuestran en la Tabla 4.1, que han de representarsecon secuencias de escape que indiquen su valorcomo cdigo Unicode o mediante un formatoespecial.