Microsoft's Command-Line Compiler
You do not need to buy Visual Studio .NET in order to program in C#. On the Windows platform, you can do everything with a text editor and the C# command-line tools that are provided in the Platform SDK(130MB)
Mono
Mono is an effort to make an Open Source implementation of the .NET Development Framework and includes a free C# compiler
DotGNU Portable.NET
A British-based Open Source implementation of the .NET Development Framework targeting Linux, includes C# compiler
SharpDevelop
SharpDevelop is an Open Source development environment for .NET written by Mike Kruger.