Sintaxis sencilla que facilita al desarrollador la escritura de código.
Sistema de tipo unificado, permitiendo realizar operaciones comunes y que los valores de todos los tipos se puedan almacenar, transportar y utilizar de manera coherente.
Orientación a componentes. Hemos dicho que C# es lenguaje orientado a objetos, pero también a componentes porque permite definir propiedades sin necesidad de crear métodos o usar eventos sin tratar con punteros a funciones.
Espacio de nombres. Se puede aislar o agrupar código mediante bibliotecas.
Todos los compiladores de C# tienen un mínimo de biblioteca de clases disponibles para usar.
Integración con otros lenguajes.
Multihilo. En C# puedes dividir el código en múltiples hilos de ejecución, trabajar en paralelo y sincronizarlos al final.