Download El nuevo C# .NET
Document related concepts
no text concepts found
Transcript
El nuevo C# Alejandro Gassmann Equipo Danysoft Artículos Grupo Danysoft: El nuevo C# .NET Página 2 / 9 Artículos Grupo Danysoft: El nuevo C# .NET El nuevo C# .NET Con el nombre estratégico de .NET, Microsoft ha creado una serie de nuevas tecnologías tendientes a crear una plataforma de desarrollo que interactúe de manera más eficiente con Internet. Dentro de esas nuevas tecnologías, la compañía de Bill Gates ha creado un lenguaje que busca combinar la potencia y velocidad del C++ con la practicidad y facilidad de uso del Visual Basic. El nuevo lenguaje ha sido denominado C# o C Sharp y es uno de los tres lenguajes que soporta el entorno ASP.NET, junto con Visual Basic y JScript. Según Microsoft, C# será para la nueva generación web como Visual Basic fue en los 90's para el ambiente Windows. Esta claro que la sintaxis de C# hereda la de su antecesor C++. Pero sin embargo, son muchas las nuevas e interesantes características que este nuevo lenguaje ha incorporado. Y muchas de estas nuevas características, están claramente tomadas de Java, el lenguaje para Internet creado por Sun Microsystems. Aunque el VisualStudio.Net se encuentra en estos momentos en Beta 2, y los ingenieros de Microsoft aún estén ultimando detalles en la sintaxis de C#, ya es posible detallar algunas de las características comunes entre C# y otros lenguajes. Características comunes con Java Las clases en C# se declaran de forma muy similar a como se declaran en Java. En C# se sustituye la palabra import por using. El clásico "Hola mundo" sería algo así: using System; class Hello { static void Main() { Console.WriteLine("Hola, mundo") } } En este ejemplo, el nombre System se refiere al paquete que contiene un conjunto de clases utilitarias básicas. Ese paquete contiene entre otros a la clase Console, la cual se utiliza para emitir el resultado por stdout. Las clases también pueden ser abstract y final: una clase que se declare como abstract no puede ser instanciada, sólo puede ser utilizada como clase base. La palabra clave lock en C#, emula la funcionalidad de la palabra final en Java. Mediante ese término se indica que una clase no es abstracta y a su vez no puede ser utilizada como clase base de otra clase. Página 3 / 9 Artículos Grupo Danysoft: El nuevo C# .NET Las interfaces también existen en C#: las mismas tal como en Java, sirven para definir en forma abstracta una colección de métodos. Cuenta también con operaciones lógicas booleanas: existen en C# las expresiones lógicas true y false, sin tener que hacer corresponder el valor lógico con algún otro tipo primitivo como en C (0 ó 1). C# cuenta con el manejo de excepciones para errores tal como lo hace Java: de hecho existen throwing y catching exceptions. Garbage collector: al igual que Java, C# cuenta con un recolector de basura para su memoria. No es necesario implementar destructores ya que el lenguaje posee un mecanismo para eliminar de la memoria las instancias de objetos que ya no estén referenciados. Características comunes con C++ El proceso de compilación: los programas se compilan directamente hacia un ejecutable binario tal como sucede con C o C++. Las estructuras son como en C++: pueden contener tanto declaraciones como métodos. Sin embargo, las mismas no actúan como clases, en tanto no soportan herencia aunque sí pueden implementar interfaces. Preprocesador: C# también incorpora directrices de preprocesamiento como C, tales como: #define / #undef / #if / #elif / #else / #endif / #warning / #error / #line. Lo que no existe es la directriz #include o #define ya sea para definir constantes o macros. Existe la sobrecarga de operadores: algunos operadores pueden sobrecargarse y otros no. En particular, no se pueden sobrecargar ninguno de los operadores de asignación. Sin embargo esto si es factible con los operadores unarios como + - ¡ ~ ++ -- true y false. También se pueden sobrecargar algunos operadores binarios. Nuevas características del lenguaje Declaraciones en el espacio de nombres: cuando se crea un programa, se puede definir una o más clases dentro de un mismo espacio de nombres. A su vez, dentro del mismo y fuera de la clase es posible declarar interfaces, enumeraciones y estructuras. Tipos fundamentales de datos: existe una variedad más amplia de tipos de datos que los que se encuentran en C, C++ o Java. Tipo de Datos char, bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double y decimal. A su vez soporta tipos con signo y sin signo. Los tipos son fijos y tal como en Java el tipo char contiene 16-bits para soportar caracteres unicode. Página 4 / 9 Artículos Grupo Danysoft: El nuevo C# .NET Operadores Aritméticos Lógicos Concatenación de Cadenas Incremento y Decremento Bits Comparación Asignación >>= Acceso a Miembros Indexación Cast Condicional Delegación Crear un Objeto Tipo de Información Control de Overflow Direccionar + - * / % & | ¡ ^ ~ && || + ++ -<< >> == ¡= <> <= >= = += -= *= /= %= &= \= ^= <<= . [] () ?: + new is sizeof typeof checked unchecked * -> [] & Dos clases fundamentales: las dos clases fundamentales del lenguaje son Object (tal como sucede en Java) y String. Ensamblaje: lo que se entiende como ensamblaje para el lenguaje es un conjunto de clases compiladas, así como un conjunto de otros posibles elementos que se combinan en un archivo único para ser ejecutado. Si resulta ser un programa, tendrá la extensión EXE, y si es una biblioteca tendrá la extensión DLL. Declaración de Variables int numero; String nombre, apellido; Private int tasa; Atributos Cada miembro de una clase tiene un atributo de acceso del tipo público, protegido, interno, interno protegido y privado. public Es accesible a todo el código protected: Es accesible sólo a clases derivadas internal: Es accesible sólo dentro de un assembly o ensamblaje. protected internal: Sólo es accesible a clases derivadas dentro de un ensamblaje. private: Es accesible sólo dentro de la propia clase Comentar el Código // Principio del Código /* Principio Del Código */ Arrays Página 5 / 9 Artículos Grupo Danysoft: El nuevo C# .NET Int[] numeros = new int[3]; numeros[0] = 1; numeros[1] = 2; numeros[2] = 3; Secuencias de Control IF If (numero >= 0) { Console.WriteLine("El número es positivo"); } FOR for (int i=0; i<51; i++) Console.WriteLine("Ejecutando el bucle FOR"); CASE Switch (pais) { Case “es”: Console.WriteLine("Has seleccionado España"); break; Case “mx”: Console.WriteLine("Has seleccionado México"); break; Case “ar”; Console.WriteLine("Has seleccionado Argentina"); break; default: Console.WriteLine("No has seleccionado ni España, ni México, ni Argentina"); break; } WHILE int edad = 0; while (edad < 18) { Console.WriteLine(“ Aún no puedes conducir”); edad++; } DO-WHILE int edad = 0; do { Console.WriteLine(“ Aún no puedes conducir!”); } while (edad < 18); Página 6 / 9 Artículos Grupo Danysoft: El nuevo C# .NET Declaración de Propiedades Simples Public String srt { get { … return …; } set { … = valor; } } Concatenación de Cadenas Dim nombre, apellido As String nombre = “Manuel, “ apellido &= “Gonzalez” nombre = apellido & “.” Pasaje de argumentos Se puede declarar a los métodos para que acepten un número variable de argumentos. Por defecto el pasaje de argumentos es por valor, salvo que se utilice la palabra reservada ref, la cual indica que el pasaje es por referencia. Métodos virtuales y redefiniciones Antes de que un método pueda ser redefinido en una clase base, debe declararse el mismo como virtual. El método redefinido en la subclase debe ser declarado con la palabra override. Propiedades Un objeto COM posee de por sí una serie de propiedades, y dado que las clases en C# pueden ser utilizadas como objetos COM, C# permite la declaración de propiedades dentro de cualquier clase. Indizador Un indizador (o indexer) se asemeja a una propiedad, con la diferencia de que en lugar de un nombre de propiedad, un valor de índice encerrado en corchetes rectos se utiliza en forma anónima para dirigirse al miembro de una clase. Control de versiones C# permite a los desarrolladores mantener múltiples versiones de clases en forma binaria, colocándolas en diferentes espacios de nombres. Esto permite que versiones nuevas y anteriores de software puedan ejecutarse en forma simultánea. Página 7 / 9 Artículos Grupo Danysoft: El nuevo C# .NET Nuestro primer ejemplo en C# Para crear este pequeño ejemplo en C#, deberemos crear un nuevo proyecto dentro del nuevo VisualStudio.Net, simplemente seleccionando la opción New Proyect desde el menu File. Luego deberemos seleccionar el tipo de proyecto, como se ve en la figura. En este caso será la aplicación más básica, una Console Application. Escribir el Código En este paso, simplemente hay de editar la página del código y dentro Main agregamos la linea, Console.WriteLine("Primer ejemplo en C#"); using System; public class Hola { public static int Main() { Console.WriteLine("Primer ejemplo en C#"); return 0; } } Ahora simplemente creamos el ejecutable desde la opción Build, desde el menú Build y luego si no ha habido errores podremos ejecutar el programa presionando Ctrl +F5. Página 8 / 9 Artículos Grupo Danysoft: El nuevo C# .NET Conclusión C# el un lenguaje muy potente y de fácil implementación. Aprovecha alguna de las mejoras características de Java, pero le suma mayor rendimiento. Posiblemente sea el lenguaje más adecuado para crear controles web en ASP.NET, aunque al momento de crear páginas ASP.NET sea algo más difícil de utilizar que el nuevo VisualBasic.Net, pero no demasiado. Página 9 / 9