I thought C# could target different platforms
To run a .NET Assembly you need an implementation of the Common Language Runtime. Note that the CLR is not the same as the .NET Framework. The Framework is the set of assemblies/libraries that run on the CLR. The only CLR and Frameworks that Microsoft provide are included with the Windows OSes. The full .NET Framework is provided with the desktop OSes and a smaller version with a cut-down CLR and libraries, the Compact Framework, is provided or available for download and installation, on PocketPC and Windows Mobile devices.
Mono is an open source implementation of the CLR and most, but not all, of the .NET Framework for mainly Linux and Mac OSX. At the moment support is provided for
these .NET versions.
As far as I know there are no other device implementations of the Compact Framework than Microsofts for PocketPC and Windows Mobile. There is Mono Touch that lets C# programs run on iThings but it is expensive at $399 for a personal license and whether its use is permitted under Apples latest license conditions is unclear.