Note that there
is a free implementation of C# (
http://www.mono-project.com/), although I don't have any personal experience with it (or with the Microsoft version, for that matter...). As far as I know the C# specification is a published standard and anyone is free to implement it.