1.1. Todos los tipos de datos sencillos de C# derivan de una clase común llamada System.Object
2. CLR (Common Language Runtime)
2.1. Es el núcleo de .NET, el motor que ejecuta las aplicaciones programadas en C#, lo que ayuda a la integración del sistema operativo o dlls externas.
3. Espacio de nombres
3.1. Puedes agrupar o aislar código mediante namespaces, parecido al package de Java.
4. Operadores sobrescritos
4.1. En C# puedes recodificar un operador, como puede ser el sumatorio + o el incremento ++
5. Eliminación de los problemas de DLLs
5.1. Aunque puedes crear dlls en .NET, no te encuentras con la problemática de la sustitución de versiones antiguas de dlls compartidas con versiones nuevas. Pueden existir diferentes versiones de la misma dll, simplificando la instalación del software.
6. Integración con otros lenguajes
6.1. Cualquier lenguaje que se compile con .NET, como la nueva versión de visual basic, puede aprovecharse para usar en tu proyecto.
7. Tratamiento de errores
7.1. Cualquier lenguaje de programacion moderno utiliza las excepciones para controlar los posibles errores en el código.
8. Sintaxis sencilla
8.1. La sintaxis de C# es muy similar a Java, lo que simplifica al desarrollador a la hora de escribir código.
9. Escritura
9.1. En C# tienes que declarar los tipos de datos con las variables, además que estas variables no pueden ser globales. De esta manera se reducen los errores de compilación. Además, es un lenguaje orientado a objetos, así que obliga que todos los métodos y propiedades estén dentro de una clase.
10. Polimorfismo
10.1. En C++ se permite la herencia múltiple, pero en C# no, aunque puedes implementar interfaces. De esta manera se evitan complicaciones y simplifica la escritura.
11. Bibliotecas
11.1. Cualquier compilador de C# viene con un mínimo de biblioteca de clases disponibles y que puedes usar.
12. Multiplataforma
12.1. Actualmente, el lenguaje C# es de código abierto y se ha utilizado en otros IDEs, como el proyecto Mono o Xamarin, y en múltiples sistemas operativos, como puede ser OSx o Android.
13. Mejora en la gestión de memoria
13.1. Al igual que Java, en C# dispone de un recolector de basura que destruye los objetos que no se usan en memoria.
14. Multihilo
14.1. Puedes dividir tu código en múltiples hilos de ejecución, trabajar en paralelo y sincronizándose al final.