I would not suggest taking the existance of Mono as implying that C# is a cross-platform development language. You can see my reasoning and answer to roughly the same question here: http://programmers.stackexchange.com/a/20329/8068https://softwareengineering.stackexchange.com/a/20329/8068
Here's a link to the question as well:
http://programmers.stackexchange.com/questions/20275/mono-is-frequently-used-to-say-yes-net-is-cross-platform-how-valid-is-that/Mono is frequently used to say "Yes, .NET is cross-platform". How valid is that claim?