Auditoria de sistemas
Con la idea de que los programadores más experimentados puedan obtener una visión general del lenguaje, a continuación se recoge de manera resumida las principales características de C# Alguna de las características aquí señaladas no son exactamente propias del lenguaje sino de la plataforma .NET en general, y si aquí se comentan es porque tienen una repercusión directa enel lenguaje:
* Sencillez: C# Sencillez
* Modernidad
* Orientacion a Objetos
* Orientacion a Componentes
* Gestion Automatica de memoria
* Seguridad de tipos
* Instrucciones seguras
* Sistemas de tipo unificado
* Extensibilidad de tipos básico
* Extensibilidad de operadores
* Extensibilidad de modificadores
* Versionable
* Eficiente
*Compatible
* elimina muchos elementos que otros lenguajes incluyen y que son innecesarios en .NET. Por ejemplo:
* El código escrito en C# es autocontenido, lo que significa que no necesita de ficheros adicionales al propio fuente tales como ficheros de cabecera o ficheros IDL
* El tamaño de los tipos de datos básicos es fijo e independiente del compilador, sistema operativo o máquinapara 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 (::)
* Modernidad: C# incorpora en el propio lenguaje elementos que a lo largo de los años ha idodemostrándose son muy útiles para el desarrollo de aplicaciones y que en otros lenguajes como Java o C++ hay que simular, como un tipo básico decimal que permita realizar operaciones de alta precisión con reales de 128 bits (muy útil en el mundo financiero), la inclusión de una instrucción foreachque permita recorrer colecciones con facilidad y es ampliable a tipos definidos por el usuario, la inclusión de untipo básico string para representar cadenas o la distinción de un tipo bool específico para representar valores lógicos.
* Orientación a objetos: Como todo lenguaje de programación de propósito general actual, C# es un lenguaje orientado a objetos, aunque eso es más bien una característica del CTS que de C#. Una diferencia de este enfoque orientado a objetos respecto al de otros lenguajescomo C++ es que el de C# es más puro en tanto que no admiten ni funciones ni variables globales sino que todo el código y datos han de definirse dentro de definiciones de tipos de datos, lo que reduce problemas por conflictos de nombres y facilita la legibilidad del código.
C# soporta todas las características propias del paradigma de programación orientada aobjetos: encapsulación, herencia y polimorfismo.
En lo referente a la encapsulación es importante señalar que aparte de los típicos modificadores public, private y protected, C# añade un cuarto modificador llamado internal, que puede combinarse con protected e indica que al elemento a cuya definición precede sólo puede accederse desde su mismo ensamblado.
Respecto a la herencia -a diferencia de C++ y al igual que Java- C#sólo admite herencia simple de clases ya que la múltiple provoca más quebraderos de cabeza que facilidades y en la mayoría de los casos su utilidad puede ser simulada con facilidad mediante herencia múltiple de interfaces. De todos modos, esto vuelve a ser más bien una característica propia del CTS que de C#.
Por otro lado y a diferencia de Java, en C# se ha optado por hacer que todos losmétodos sean por defecto sellados y que los redefinibles hayan de marcarse con el modificador virtual(como en C++), lo que permite evitar errores derivados de redefiniciones accidentales. Además, un efecto secundario de esto es que las llamadas a los métodos serán más eficientes por defecto al no tenerse que buscar en la tabla de funciones virtuales la implementación...
Regístrate para leer el documento completo.