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