Este maravilloso lenguaje a estado disponible para nosotros desde el año 2000, para los que aun no lo han escuchado, o simplemente los que desee documentarse un poco más acerca de este lenguaje, les dejo este articulo, espero lo disfruten
.
C# es (a mi parecer) uno de los lenguajes más potentes de la plataforma .Net, debido a que combina la gran potencia de lenguajes como C, C++, Java y Visual Basic. Es un lenguaje muy utilizado para la construcción de juegos, también provee soporte para estructuras.
Sus principales características:
Es Sencillo: este lenguaje elimina muchos elementos que otros lenguajes incluyen y que son prácticamente innecesarios en .Net; Tales como:
El tamaño de los tipos de datos básicos es fijo e independiente del compilador, sistema operativo o máquina para quienes se compile (no como en C++), lo que facilita la portabilidad del código.
No se incluyen elementos poco útiles de lenguajes como C++ tales como macros, herencia múltiple o la necesidad de un operador diferente del punto (.) acceder a miembros de espacios de nombres (::).
Instrucciones seguras: Para evitar errores muy comunes, en C# se han impuesto una serie de restricciones en el uso de las instrucciones de control más comunes. Por ejemplo, la guarda de toda condición ha de ser una expresión condicional y no aritmética, con lo que se evitan errores por confusión del operador de igualdad (==) con el de asignación (=); y todo caso de un switch ha de terminar en un break o goto que indique cuál es la siguiente acción a realizar, lo que evita la ejecución accidental de casos y facilita su reordenación.
Eficiente: En principio, en C# todo el código incluye numerosas restricciones para asegurar su seguridad y no permite el uso de punteros. Sin embargo, y a diferencia de otros, en C# es posible saltarse dichas restricciones manipulando objetos a través de punteros.
Compatible: Para facilitar la migración de programadores, C# no sólo mantiene una sintaxis muy similar a C, C++ o Java que permite incluir directamente en código escrito en C# fragmentos de código escrito en estos lenguajes, sino que el CLR también ofrece, a través de los llamados Platform
Invocation Services (PInvoke), la posibilidad de acceder a código nativo escrito como funciones sueltas no orientadas a objetos tales como las DLLs de la API Win32. Nótese que la capacidad de usar punteros en código inseguro permite que se pueda acceder con facilidad a este tipo de funciones, ya que éstas muchas veces esperan recibir o devuelven punteros.
También es posible acceder desde código escrito en C# a objetos COM. Para facilitar esto, el .NET Framework SDK incluye una herramientas llamadas tlbimp y regasm mediante las que es posible generar automáticamente clases proxy que permitan, respectivamente, usar objetos COM desde .NET como si de objetos .NET se tratase y registrar objetos .NET para su uso desde COM.
Para mas Información acerca de este tema visita:
http://msdn.microsoft.com/es-es/vcsharp/default.aspx
http://www.clikear.com/manuales/csharp/c10.aspx
http://es.wikibooks.org/wiki/C_sharp_NET