C Sharp
C Sharp
C Sharp
FISEI
DESARROLLO DE SOFTWARE II
[C SHARP]
DIANA ALTAMIRANO SEXTO SISTEMAS ING. CLAY ALDAZ
C SHARP
C# (C Sharp) es un lenguaje de programacin orientado a objetos desarrollado por Microsoft. Apareci en el ao 2000. Es parte de la plataforma .NET, siendo un lenguaje de programacin independiente diseado para generar programas sobre dicha plataforma. Su sintaxis se deriva de C y C++, utiliza un modelo de objetos similar al de Java, pero incluye mejoras derivadas de otros lenguajes. Su compilador est incluido en el .Net Framework SDK. Se dice que c# es el lenguaje nativo de .Net ya que ha sido diseado para ser utilizado especficamente en esta plataforma. Sistema Operativo: Multiplataforma ltima versin: 5.0 (15 de agosto del 2012) VERSIONES C# 1.0 Managed Code Enero 2002 El uso de su cdigo administrativo se introdujo con esta versin. C# 2.0 Generics Microsoft la lanz en noviembre de 2005 la segunda versin del lenguaje de programacin C#, introduciendo a esta edicin: Genricos Mtodos annimos que se utilizan con el fin de pasar un bloque de cdigo como parmetro de un delegado (Referencia que encapsula un mtodo con nombre o annimo) con la finalidad de ahorrar cdigo. Tipo variable Null Tipos de datos que aceptan valores NULL, el cual puede ser til en el manejo de BD ya que pueden existir tipos de datos (variables) que pueden o no contener un valor asignado. Clase parcial Separacin de una clase en 2 archivos distintos para permitir el trabajo (Modificaciones) simultaneo en ellos. C# 3.0 LINK Visual Studio 2008 lleg con C# versin 3.0 (Noviembre de 2007). Presenta una funcin o subrutina y es la que entra a reemplazar a los mtodos annimos de la versin anterior. Lambda Expresin Mtodo de extensin rbol de Expresin Tipos annimos Lenguaje de consulta integrado.
C# 4.0 Dinamic Programming Fue lanzado con Visual Studio 2010 con. NET Framework 4 (Abril de 2010). Con la introduccin a tipos dinmicos, los parmetros opcionales, argumentos con nombre y varianza genrica C# 5.0 Su nueva caracterstica consiste en programacin multihilo, o funciones asncronas, esto resulta ideal para la escritura de aplicaciones cliente enriquecidas responsivas, adems, de hacer ms eficiente los procesos que involucran la escritura y lectura de datos de diferentes flujos (red, local). Una funcin asncrona como un subproceso que puede ser ejecutado en segundo plano dentro de otro hilo mientras que el proceso principal realiza otras operaciones integrales para completarse. TIPOS DE DATOS Enteros TIPO Byte Sbyte short Ushort Int Uint Long ulong Punto Flotante TIPO Float Double Decimal ANCHO DE BITS 32 64 128 SIGNIFICADO Punto flotante corto Punto flotante largo Punto flotante monetario ANCHO DE BITS 8 8 16 16 32 32 64 64 SINGIFICADO Entero sin signo Entero con signo Entero corto con signo Entero corto sin signo Entero medio con signo Entero medio sin signo Entero largo con signo Entero largo sin signo
Lgicos TIPO bool VENTAJAS Sencillez Elimina elementos innecesarios, no necesita ficheros adicionales de cabecera o IDL, no incluye macros, herencia mltiple. Modernidad Incorpora en el propio lenguaje un tipo bsico decimal para operaciones de alta precisin. Instruccin foreach que permite recorrer colecciones con facilidad. Orientacin a objetos Es ms puro en comparacin con c++ ya que no incluye funciones ni variables globales, reduce problemas por conflictos de nombres, facilita la legibilidad del cdigo. Soporta encapsulacin, herencia y polimorfismo. Orientacin a componentes Su sintaxis incluye elementos propios del diseo de componentes que otros lenguajes construyen complejamente. Permite definir propiedades, eventos o atributos. Gestin automtica de memoria Todo lenguaje de .Net tiene a su disposicin el recolector de basura CLR. Tambin tiene un mecanismo de liberacin de recursos a travs de la instruccin using. Instrucciones seguras Cuenta con restricciones en instrucciones que producan errores comunes. Eficiente Compatible Facilita la migracin de programadores, mantiene una sintaxis similar a C,C++, o Java que permite incluir directamente fragmentos de cdigo escrito en estos lenguajes. ANCHO DE BITS 8 SIGNIFICADO Verdadero o falso
DESVENTAJAS Se tiene que conseguir una versin reciente de Visual Studio .NET. Se tiene que tener algunos requerimientos mnimos del sistema para poder trabajar adecuadamente, tener alrededor de 4 gigas de espacio libre para la pura instalacin, etc. Para quien no est familiarizado con ningn lenguaje de programacin, le costar ms trabajo iniciarse en su uso, y si se quiere consultar algn tutorial
ms explcito sobre la programacin en C# se tendra que contar adems con una conexin a Internet.
COMPARACIN CON JAVA A diferencia de Java, en c# todos los mtodos son por defecto sellados y los redefinibles son marcados con el modificador virtual, esto permite evitar errores de redefinicones accidentales. C# incluye delegados, que son similares a los punteros pero siguen un enfoque orientado a objetos. El resultado de toda condicin ser condicional y no aritmtico, se evita confusin con el operador de igualdad == con el de asignacin =; todo caso de switch termina con un break o goto, que evita la ejecucin accidental de casos. Tipos de Datos C# proporciona todos los tipos de datos que estn disponibles en Java y agrega compatibilidad para los nmeros sin signo y un nuevo tipo de punto flotante de 128 bits de alta precisin.
Destructor C# permite crear un mtodo de destructor al que se llama antes de que se destruyan las instancias de una clase. En Java, se puede utilizar un mtodo finalize para contener cdigo que limpia los recursos antes de que se recolecten los elementos no utilizados del objeto. En C#, el que realiza esta funcin es el destructor de clase. El destructor se parece a un constructor sin los argumentos y con un carcter de tilde delante (~). Operadores C# ofrece todos los operadores compatibles con Java aplicables. Existen algunos operadores nuevos disponibles en C#, pero no en Java: Categora Unario Multiplicativo Sumatorio Smbolo ++--+-!~() */% +-
Desplazamiento Relacionales Igualdad AND lgico XOR lgico OR lgico AND condicional OR condicional Condicional Asignacin Tipo de operando Tamao del operando Exigir comprobacin de desbordamiento Suprimir comprobacin desbordamiento de
<< >> < > <= >= instanceof == != & ^ | && || ?: = *= /= %= += -= <<= >>= &= ^= |= typeof sizeof checked unchecked
El nico operador de Java no disponible en C# es el operador de desplazamiento ( >>>). Este operador est presente en Java debido a la ausencia de variables sin signo en ese lenguaje, para los casos en que se requiere el desplazamiento a la derecha para insertar un uno (1) en los bits ms significativos. C# admite variables sin signo y, por consiguiente, slo necesita el operador >> estndar. Este operador genera resultados diferentes, lo que depende de si el operando est con o sin signo. Desplazar a la derecha un nmero sin signo inserta un 0 en el bit ms significativo, mientras que desplazar a la derecha un nmero con signo copia el bit ms significativo anterior. Ciclos repetitivos La sintaxis y el funcionamiento de los bucles for son iguales en C# y Java: C# for (int i = 0; i<=9; i++) {
System.Console.WriteLine(i); } Bucles foreach C# introduce un nuevo tipo de bucle denominado bucle foreach, que es similar a For Each de Visual Basic. El bucle foreach permite la iteracin a travs de cada elemento en una clase contenedora, como una matriz, que admite la interfaz IEnumerable. El cdigo siguiente muestra el uso de la instruccin foreach para obtener el contenido de una matriz: C# static void Main() { string[] arr= new string[] {"Jan", "Feb", "Mar"}; foreach (string s in arr) { System.Console.WriteLine(s); } } Bucles while y do...while La sintaxis y el funcionamiento de las instrucciones while y do...while son iguales en ambos lenguajes: if, else y else if Estas instrucciones son idnticas en ambos lenguajes. switch En ambos lenguajes, la instruccin switch proporciona mltiples operaciones de bifurcacin condicionales. Sin embargo, existe una diferencia en cuanto a que Java permite "pasar explcitamente" un caso y ejecutar el siguiente, a menos que se utilice una instruccin break al final del caso. En cambio, C# exige el uso de una instruccin break o goto al final de cada caso y, si no hay ninguna presente, el compilador produce error. Modificadores de Acceso C# y Java
public Visible para todos. protected Visible slo desde clases derivadas. private Visible slo dentro de la clase dada.
C# internal Visible slo dentro del mismo ensamblado. protected internal Visible slo para el ensamblado actual o los tipos derivados de la clase contenedora.