What is C#?
What C# is, where it runs today, and why it's no longer "just the Windows language."
2 min read
C# (pronounced "C sharp") is a general-purpose, statically typed language created by Microsoft in 2000. It started life tightly bound to Windows and the .NET Framework, but that's not the whole story anymore — modern C# runs on Windows, macOS, and Linux, and powers everything from web APIs to mobile apps to game engines.
That shift happened because of .NET (the current, cross-platform runtime that replaced the old Windows-only .NET Framework). When people say "C# runs on .NET," they mean the compiler turns your code into an intermediate format that the .NET runtime executes — similar in spirit to how the JVM runs Java bytecode.
C# is statically typed and object-oriented
Every variable in C# has a type, and the compiler checks that type before your code ever runs:
int age = 30;
string name = "Ada";
bool isActive = true;If you try to assign a string to an int variable, the compiler stops you immediately — that's a compile-time error, not something you discover when a user hits it in production. This is one of the biggest practical differences from dynamically typed languages like JavaScript or Python: C# trades a bit of typing convenience for catching a whole category of bugs before the program ever starts.
C# is also deeply object-oriented: classes, interfaces, and inheritance are first-class concepts you'll use constantly, not optional add-ons.
Where C# is actually used
- Web backends — ASP.NET Core builds REST APIs and full web apps.
- Desktop and mobile — WPF, MAUI, and Xamarin for cross-platform apps.
- Game development — Unity, one of the most popular game engines, is scripted almost entirely in C#.
- Cloud services — Azure's tooling and SDKs treat C# as a first-class citizen.
Compiled, but with a fast feedback loop
C# is compiled, not interpreted, but that doesn't mean a slow edit-compile-run cycle. Modern .NET tooling compiles incrementally and starts quickly, so the workflow feels closer to scripting languages than you'd expect from a statically typed, compiled language.
The rest of this course builds C# up from a single "Hello, World" program to classes, LINQ, async code, and the frameworks you'll actually use to ship something real.
Test what you just learned
4 quick questions. Get all of them right to unlock the next lesson.
You can take the quiz without an account — logging in just lets your result count toward your progress.