C# es un lenguaje de la plataforma .NET. Está basado en C++, pero es más sencillo de utilizar: por ejemplo, cuenta con un recolector de basura automático, que hace la gestión de la memoria más sencilla y segura.
Es un lenguaje orientado a objetos y de tipado fuerte: cada dato tiene un tipo, y el compilador comprueba que se usa de forma coherente con él. Además es flexible, seguro, productivo y multiplataforma.
C# nació en Microsoft, pero la definición del lenguaje se convirtió en un estándar internacional: primero de Ecma (2001) y después de ISO (2003). Lo que se estandarizó fue el lenguaje, no la implementación de Microsoft. A partir de esa definición se creó Mono, una implementación libre y multiplataforma que Miguel de Icaza puso en marcha en 2001 desde la empresa Ximian. En 2011, él mismo fundó Xamarin, donde el equipo original siguió desarrollando Mono y lo llevó a los móviles: con Xamarin se podían crear en C# aplicaciones para iOS y Android. Finalmente, en 2016, Microsoft compró Xamarin y, con ello, respaldó oficialmente esa implementación.
Esta historia nos toca de cerca: Unity utiliza su propia versión de Mono para ejecutar los scripts.