1 Intro C Sharp
1 Intro C Sharp
Origen
C# (ledo en ingls C Sharp y en espaol C Almohadilla) 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 Turbo Pascal y la herramienta RAD Delphi. Aunque es posible escribir cdigo para la plataforma .NET en muchos otros lenguajes, C# es el nico que ha sido diseado especficamente para ser utilizado en ella, por lo que programarla usando C# es mucho ms sencillo e intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos heredados innecesarios en .NET. Por esta razn, se suele decir que C# es el lenguaje nativo de .NET En resumen, C# es un lenguaje de programacin que toma las mejores caractersticas de lenguajes preexistentes como Visual Basic, Java o C++ y las combina en uno solo. El hecho de ser relativamente reciente no implica que sea inmaduro, pues Microsoft ha escrito la mayor parte de la BCL usndolo, por lo que su compilador es el ms depurado y optimizado de los incluidos en el .NET Framework SDK
Caractersticas de C#
Sencillez Modernidad Orientacin a objetos Orientacin a componentes Gestin automtica de memoria Seguridad de tipo Instrucciones seguras Extensibilidad de tipos bsicos Extensibilidad de operadores Extensibilidad de modificadores Versionable Eficiente Compatible
Escritura de aplicaciones
Aplicacin bsica Hola Mundo! Como primer contacto con el lenguaje, nada mejor que el tpico programa de iniciacin Hola Mundo! que lo nico que hace al ejecutarse es mostrar por pantalla el mensaje Hola Mundo! Su cdigo es:
" 1: "class HolaMundo" 2: "{" 3: " "static void Main()" 4: " "{" 5: " " "System.Console.WriteLine(Hola Mundo!);" 6: " "}" 7: "}" Los nmeros de lnea no forman parte del cdigo sino que slo se incluyen para facilitar su posterior explicacin.
Puntos de entrada
Ya se ha dicho que el punto de entrada de una aplicacin es un mtodo de nombre Main que contendr el cdigo por donde se ha de iniciar la ejecucin de la misma. Hasta ahora slo se ha visto una versin de Main() que no toma parmetros y tiene como tipo de retorno void, pero en realidad todas sus posibles versiones son: static void Main() static int Main() static int Main(string[] args) static void Main(string[] args)
Una vez escrito el cdigo anterior con algn editor de textos como el Bloc de Notas de Windows- y almacenado en formato de texto plano en un fichero HolaMundo.cs, para compilarlo basta abrir una ventana de consola (MS-DOS en Windows), colocarse en el directorio donde se encuentre y pasrselo como parmetro al compilador as: csc HolaMundo.cs
csc.exe es el compilador de C# incluido en el .NET Framework SDK para Windows de Microsoft, y es posible llamarlo desde cualquier directorio en tanto que al instalarlo se aade una referencia al mismo en el path. Si utiliza otros compiladores de C# puede que varie la forma en que se realice la compilacin, por lo que lo que aqu se explica en principio slo podra ser vlido para el compilador de Microsoft para Windows. El nombre que se d al fichero puede ser cualquiera, aunque se recomienda darle la extensin .cs ya que es la utilizada por convenio
Si la aplicacin que se vaya a compilar no utilizase la ventana de consola para mostrar su salida sino una interfaz grfica de ventanas, entonces habra que compilarla pasando al compilador la opcin /t con el valor winexe antes del nombre del fichero a compilar. Si no se hiciese as se abrra la ventana de consola cada vez que ejecutase la aplicacin de ventanas, lo que suele ser indeseable en este tipo de aplicaciones. As, para compilar Ventanas.cs como ejecutable de ventanas sera conveniente escribir: csc /t:winexe Ventanas.cs Ntese que aunque el nombre winexe d la sensacin de que este valor para la opcin /t slo permite generar ejecutables de ventanas, en realidad lo que permite es generar ejecutables sin ventana de consola asociada. Por tanto, tambin puede usarse para generar ejecutables que no tengan ninguna interfaz asociada, ni de consola ni grfica.
Para compilar una aplicacin en Visual Studio.NET primero hay que incluirla dentro de algn proyecto. Para ello basta pulsar el botn New Project en la pgina de inicio que se muestra nada ms arrancar dicha, En el recuadro de la ventana mostrada etiquetado como Project Types se ha de seleccionar el tipo de proyecto a crear. Si se va a trabajar en C# la opcin que habr que escoger en la misma ser siempre Visual C# Projects. En el recuadro Templates se ha de seleccionar la plantilla correspondiente al subtipo de proyecto dentro del tipo indicado en Project Types que se va a realizar. Para realizar un ejecutable de consola, como es nuestro caso, hay que seleccionar el icono etiquetado como Console Application. herramienta,
ASPECTOS LXICOS
En C# hay dos formas de escribir comentarios. La primera consiste en encerrar todo el texto que se desee comentar entre caracteres /* y */ siguiendo la siguiente sintaxis: /*<texto>*/ La segunda en las que se considera como indicador del comienzo del comentario la pareja de caracteres // y como indicador de su final el fin de lnea. Por tanto, la sintaxis que siguen estos comentarios es: // <texto>
Palabras reservadas
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
Literales de carcter:
Literales de cadena
C# tambin admite un nuevo formato para la escritura estos literales tipo de literales consistente en precederlas de un smbolo @, caso en que todo el contenido de la cadena sera interpretado tal cual, sin considerar la existencia de secuencias de escape. A este tipo de literales se les conoce como literales de cadena planos
Operadores
Operaciones aritmticas: Los operadores aritmticos incluidos en C# son los tpicos de suma (+), resta (-), producto (*), divisin (/) y mdulo (%) Tambin se incluyen operadores de menos unario () y ms unario (+) Relacionados con las operaciones aritmticas se encuentran un par de operadores llamados checked y unchecked que permiten controlar si se desea detectar los desbordamientos que puedan producirse si al realizar este tipo de operaciones el resultado es superior a la capacidad del tipo de datos de sus operandos. Estos operadores se usan as: checked (<expresinAritmtica>) unchecked(<expresinAritmtica>)
Operadores
Operaciones lgicas: Se incluyen operadores que permiten realizar las operaciones lgicas tpicas: and (&& y &), or (|| y |), not (!) y xor (^) Los operadores && y || se diferencia de & y | en que los primeros realizan evaluacin perezosa y los segundos no. La evaluacin perezosa consiste en que si el resultado de evaluar el primer operando permite deducir el resultado de la operacin, entonces no se evala el segundo y se devuelve dicho resultado directamente, mientras que la evaluacin no perezosa consiste en evaluar siempre ambos operandos. Es decir, si el primer operando de una operacin && es falso se devuelve false directamente, sin evaluar el segundo; y si el primer operando de una || es cierto se devuelve true directamente, sin evaluar el otro.
Operadores
Operaciones relacionales: Se han incluido los tradicionales operadores de igualdad (==), desigualdad (!=), mayor que (>), menor que (<), mayor o igual que (>=) y menor o igual que (<=) Operaciones de manipulacin de bits: Se han incluido operadores que permiten realizar a nivel de bits operaciones and (&), or (|), not (~), xor (^), desplazamiento a izquierda (<<) y desplazamiento a derecha (>>) El operador << desplaza a izquierda rellenando con ceros, mientras que el tipo de relleno realizado por >> depende del tipo de dato sobre el que se aplica: si es un dato con signo mantiene el signo, y en caso contrario rellena con ceros.
Operadores
Operaciones con cadenas: Para realizar operaciones de concatenacin de cadenas se puede usar el mismo operador que para realizar sumas, ya que en C# se ha redefinido su significado para que cuando se aplique entre operandos que sean cadenas o que sean una cadena y un carcter lo que haga sea concatenarlos. Por ejemplo, Hola+ mundo devuelve Hola mundo, y Hola mund + o tambin. Operaciones de acceso a tablas: Una tabla es un conjunto de ordenado de objetos de tamao fijo. Para acceder a cualquier elemento de este conjunto se aplica el operador postfijo [] sobre la tabla para indicar entre corchetes la posicin que ocupa el objeto al que se desea acceder dentro del conjunto. Es decir, este operador se usa as: [<posicinElemento>]
Operadores
Operaciones de creacin de objetos: El operador ms tpicamente usado para crear objetos es new, que se usa as: new <nombreTipo>(<parametros>) Este operador crea un objeto de <nombreTipo> pasndole a su mtodo constructor los parmetros indicados en <parmetros> y devuelve una referencia al mismo. En funcin del tipo y nmero de estos parmetros se llamar a uno u otro de los constructores del objeto. As, suponiendo que a1 y a2 sean variables de tipo Avin, ejemplos de uso del operador new son: Avin a1 = new Avin(); // Se llama al constructor sin parmetros de Avin Avin a2 = new Avin(Caza); // Se llama al constructor de Avin que toma // como parmetro una cadena