Język C# powstał specjalnie do programowania platformy .NET Framework. Jest on ściśle dopasowany do .NET CLR (Common Language Runtime) i odzwierciedla wiele jego cech, takich jak typy, zarządzanie pamięcią czy wyjątki. C# nie jest od razu kompilowany do postaci kodu maszynowego. Po kompilacji kodu źródłowego otrzymujemy IL (Intermediate Language) - dopiero podczas uruchamiania programu CLR przekształca IL do postaci wykonywalnej.
Program w C# jest tworzony poprzez budowanie nowych typów (głównie klas) oraz deklarowanie ich obiektów. W skład każdego typu wchodzą dane oraz funkcje składowe.
Dla kompilatora C# ułożenie oraz nazwy plików źródłowych - z rozszerzeniem .cs - nie mają znaczenia. Zgodnie z konwencją powinno się jednak każdą klasę umieszczać w osobnym pliku o nazwie odpowiadającej nazwie tej klasy, natomiast każdy plik powinien się znajdować w katalogu o nazwie odpowiadającej przestrzeni nazw, do której należy ta klasa.
C# nie posiada wbudowanych bibliotek. Zamiast tego korzysta z bibliotek BCL (Base Class Libraries) dostarczanych przez platformę .NET Framework (są one dostępne dla każdego języka .NET).
Najprostszy program w C#:
// Plik źródłowy Test.cs using System; class Test { static void Main( ) { System.Console.WriteLine( " Witaj !!! " ) ; } }Metoda Main jest domyślnym punktem wejścia do programu.